From 71f2d1b2d82da3589802f31f183dbf4820437ec4 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: Wed, 12 Feb 2025 04:03:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=BB=98=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- 02-A-Realm-Reborn/Bahamute_NormalRaid.cs | 175 ++++++++ Celestium/18-Midsummer_Night's_Explosion.cs | 201 +++++++++ Deep_Dungeon/Eureka_Orthos.cs | 384 +++++++++++++++++- Deep_Dungeon/the_Palace_of_the_Dead.cs | 11 +- .../TetoraKodakkuScript.AssemblyInfo.cs | 2 +- ...toraKodakkuScript.AssemblyInfoInputs.cache | 2 +- 7 files changed, 748 insertions(+), 30 deletions(-) create mode 100644 02-A-Realm-Reborn/Bahamute_NormalRaid.cs create mode 100644 Celestium/18-Midsummer_Night's_Explosion.cs diff --git a/.gitignore b/.gitignore index 5d1c988..d3c452c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,4 @@ *.sln *.user -Provisional_Test/ -Deep Dungeon/ +Provisional_Test/ \ No newline at end of file diff --git a/02-A-Realm-Reborn/Bahamute_NormalRaid.cs b/02-A-Realm-Reborn/Bahamute_NormalRaid.cs new file mode 100644 index 0000000..f8819f2 --- /dev/null +++ b/02-A-Realm-Reborn/Bahamute_NormalRaid.cs @@ -0,0 +1,175 @@ +using System; +using System.ComponentModel; +using System.Linq; +using System.Numerics; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using Dalamud.Game.ClientState.Objects.Types; +using Newtonsoft.Json; +using Dalamud.Utility.Numerics; +using KodakkuAssist.Script; +using KodakkuAssist.Module.GameEvent; +using KodakkuAssist.Module.Draw; +using ECommons; +using ECommons.DalamudServices; +using ECommons.GameFunctions; +using ECommons.MathHelpers; + +namespace Bahamute_NormalRaid; + +[ScriptType(guid: "8d41b5f9-0ab6-404a-9572-aabb390023f0", name: "巴哈姆特大迷宫 - 普通难度", territorys: [196,245,358], + version: "0.0.0.1", author: "Tetora", note: noteStr)] + +public class Bahamute_NormalRaid +{ + const string noteStr = + """ + v0.0.0.1: + 巴哈姆特大迷宫 普通难度绘制 + 目前支持:T5 + 计划中:T9 T13 + """; + + [ScriptMethod(name: "T5_爆破俯冲", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:1247"])] + public void 爆破俯冲(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "爆破俯冲"; + dp.Scale = new (11, 60f); + dp.Owner = @event.SourceId(); + dp.Color = accessory.Data.DefaultDangerColor; + dp.DestoryAt = 1800; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Rect, dp); + } + +} + +public static class EventExtensions +{ + private static bool ParseHexId(string? idStr, out uint id) + { + id = 0; + if (string.IsNullOrEmpty(idStr)) return false; + try + { + var idStr2 = idStr.Replace("0x", ""); + id = uint.Parse(idStr2, System.Globalization.NumberStyles.HexNumber); + return true; + } + catch (Exception) + { + return false; + } + } + + public static uint ActionId(this Event @event) + { + return JsonConvert.DeserializeObject(@event["ActionId"]); + } + + public static uint SourceId(this Event @event) + { + return ParseHexId(@event["SourceId"], out var id) ? id : 0; + } + + public static uint SourceDataId(this Event @event) + { + return JsonConvert.DeserializeObject(@event["SourceDataId"]); + } + + public static uint Command(this Event @event) + { + return ParseHexId(@event["Command"], out var cid) ? cid : 0; + } + + public static uint DurationMilliseconds(this Event @event) + { + return JsonConvert.DeserializeObject(@event["DurationMilliseconds"]); + } + + public static float SourceRotation(this Event @event) + { + return JsonConvert.DeserializeObject(@event["SourceRotation"]); + } + + public static float TargetRotation(this Event @event) + { + return JsonConvert.DeserializeObject(@event["TargetRotation"]); + } + + public static byte Index(this Event @event) + { + return (byte)(ParseHexId(@event["Index"], out var index) ? index : 0); + } + + public static uint State(this Event @event) + { + return ParseHexId(@event["State"], out var state) ? state : 0; + } + + public static string SourceName(this Event @event) + { + return @event["SourceName"]; + } + + public static string TargetName(this Event @event) + { + return @event["TargetName"]; + } + + public static uint TargetId(this Event @event) + { + return ParseHexId(@event["TargetId"], out var id) ? id : 0; + } + + public static Vector3 SourcePosition(this Event @event) + { + return JsonConvert.DeserializeObject(@event["SourcePosition"]); + } + + public static Vector3 TargetPosition(this Event @event) + { + return JsonConvert.DeserializeObject(@event["TargetPosition"]); + } + + public static Vector3 EffectPosition(this Event @event) + { + return JsonConvert.DeserializeObject(@event["EffectPosition"]); + } + + public static uint DirectorId(this Event @event) + { + return ParseHexId(@event["DirectorId"], out var id) ? id : 0; + } + + public static uint StatusId(this Event @event) + { + return JsonConvert.DeserializeObject(@event["StatusId"]); + } + + public static uint StackCount(this Event @event) + { + return JsonConvert.DeserializeObject(@event["StackCount"]); + } + + public static uint Param(this Event @event) + { + return JsonConvert.DeserializeObject(@event["Param"]); + } +} + + +public static class Extensions +{ + public static void TTS(this ScriptAccessory accessory, string text, bool isTTS, bool isDRTTS) + { + if (isDRTTS) + { + accessory.Method.SendChat($"/pdr tts {text}"); + } + else if (isTTS) + { + accessory.Method.TTS(text); + } + } +} diff --git a/Celestium/18-Midsummer_Night's_Explosion.cs b/Celestium/18-Midsummer_Night's_Explosion.cs new file mode 100644 index 0000000..2c43801 --- /dev/null +++ b/Celestium/18-Midsummer_Night's_Explosion.cs @@ -0,0 +1,201 @@ +using System; +using System.ComponentModel; +using System.Linq; +using System.Numerics; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using Dalamud.Game.ClientState.Objects.Types; +using Newtonsoft.Json; +using Dalamud.Utility.Numerics; +using KodakkuAssist.Script; +using KodakkuAssist.Module.GameEvent; +using KodakkuAssist.Module.Draw; +using ECommons; +using ECommons.DalamudServices; +using ECommons.GameFunctions; +using ECommons.MathHelpers; + +namespace Midsummer_Night_s_Explosion; + + +[ScriptType(guid: "7703f1a9-5698-4896-8908-bb8e415c1321", name: "天青斗场18 - 爆破死斗", territorys: [796], + version: "0.0.0.1", author: "Tetora", note: noteStr)] + +public class Midsummer_Night_s_Explosion { + const string noteStr = + """ + v0.0.0.1: + 天青斗场第18层 爆破死斗绘制 + """; + + [ScriptMethod(name: "狂野冲锋(直线击退)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15055"])] + public void 狂野冲锋(Event @event, ScriptAccessory accessory) + { + accessory.Method.TTS("冲锋击退"); + + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "狂野冲锋"; + dp.Scale = new (8f); + dp.ScaleMode |= ScaleMode.YByDistance; + dp.Owner = @event.SourceId(); + dp.TargetObject = @event.TargetId(); + dp.Color = accessory.Data.DefaultDangerColor; + dp.DestoryAt = 3200; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Rect, dp); + } + + [ScriptMethod(name: "撕裂利爪(顺劈)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15050"])] + public void 撕裂利爪(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "撕裂利爪"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(8f); + dp.Radian = 90f.DegToRad(); + dp.DestoryAt = 3700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); + } + + [ScriptMethod(name: "火球(面前圆形)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:15051"])] + public void 火球(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "火球"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Position = @event.EffectPosition(); + dp.Scale = new Vector2(6f); + dp.DestoryAt = 3700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + } + +} +public static class EventExtensions +{ + private static bool ParseHexId(string? idStr, out uint id) + { + id = 0; + if (string.IsNullOrEmpty(idStr)) return false; + try + { + var idStr2 = idStr.Replace("0x", ""); + id = uint.Parse(idStr2, System.Globalization.NumberStyles.HexNumber); + return true; + } + catch (Exception) + { + return false; + } + } + + public static uint ActionId(this Event @event) + { + return JsonConvert.DeserializeObject(@event["ActionId"]); + } + + public static uint SourceId(this Event @event) + { + return ParseHexId(@event["SourceId"], out var id) ? id : 0; + } + + public static uint SourceDataId(this Event @event) + { + return JsonConvert.DeserializeObject(@event["SourceDataId"]); + } + + public static uint Command(this Event @event) + { + return ParseHexId(@event["Command"], out var cid) ? cid : 0; + } + + public static uint DurationMilliseconds(this Event @event) + { + return JsonConvert.DeserializeObject(@event["DurationMilliseconds"]); + } + + public static float SourceRotation(this Event @event) + { + return JsonConvert.DeserializeObject(@event["SourceRotation"]); + } + + public static float TargetRotation(this Event @event) + { + return JsonConvert.DeserializeObject(@event["TargetRotation"]); + } + + public static byte Index(this Event @event) + { + return (byte)(ParseHexId(@event["Index"], out var index) ? index : 0); + } + + public static uint State(this Event @event) + { + return ParseHexId(@event["State"], out var state) ? state : 0; + } + + public static string SourceName(this Event @event) + { + return @event["SourceName"]; + } + + public static string TargetName(this Event @event) + { + return @event["TargetName"]; + } + + public static uint TargetId(this Event @event) + { + return ParseHexId(@event["TargetId"], out var id) ? id : 0; + } + + public static Vector3 SourcePosition(this Event @event) + { + return JsonConvert.DeserializeObject(@event["SourcePosition"]); + } + + public static Vector3 TargetPosition(this Event @event) + { + return JsonConvert.DeserializeObject(@event["TargetPosition"]); + } + + public static Vector3 EffectPosition(this Event @event) + { + return JsonConvert.DeserializeObject(@event["EffectPosition"]); + } + + public static uint DirectorId(this Event @event) + { + return ParseHexId(@event["DirectorId"], out var id) ? id : 0; + } + + public static uint StatusId(this Event @event) + { + return JsonConvert.DeserializeObject(@event["StatusId"]); + } + + public static uint StackCount(this Event @event) + { + return JsonConvert.DeserializeObject(@event["StackCount"]); + } + + public static uint Param(this Event @event) + { + return JsonConvert.DeserializeObject(@event["Param"]); + } +} + + +public static class Extensions +{ + public static void TTS(this ScriptAccessory accessory, string text, bool isTTS, bool isDRTTS) + { + if (isDRTTS) + { + accessory.Method.SendChat($"/pdr tts {text}"); + } + else if (isTTS) + { + accessory.Method.TTS(text); + } + } +} diff --git a/Deep_Dungeon/Eureka_Orthos.cs b/Deep_Dungeon/Eureka_Orthos.cs index e2ca7a2..4ac65da 100644 --- a/Deep_Dungeon/Eureka_Orthos.cs +++ b/Deep_Dungeon/Eureka_Orthos.cs @@ -17,7 +17,9 @@ using ECommons.MathHelpers; namespace Eureka_Orthos; -[ScriptType(guid: "5e8a4051-53f7-4eb3-bb32-b18df8b113aa", name: "正统优雷卡", territorys: [1099,1100,1101,1102,1103,1104,1105,1106,1107,1108], +[ScriptType(guid: "5e8a4051-53f7-4eb3-bb32-b18df8b113aa", name: "正统优雷卡", + //territorys: uint [Regex:(1099|110[0-8])], + territorys: [1099,1100,1101,1102,1103,1104,1105,1106,1107,1108], version: "0.0.0.1", author: "Tetora", note: noteStr)] public class Eureka_Orthos { @@ -31,7 +33,7 @@ public class Eureka_Orthos { 错误:第20层扇形绘制会有偏差 """; - //眩晕、催眠、石化1511、无法发动技能1113等状态都需要销毁绘图,缓速3493需要额外注意没有omen的技能 + //对应怪物死亡、眩晕、催眠、石化1511、无法发动技能1113等状态都需要销毁绘图,缓速3493需要额外注意没有omen的技能 // 通用内容 [ScriptMethod(name: "拟态怪_怨念提示", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32798"])] @@ -182,34 +184,345 @@ public class Eureka_Orthos { } // 21~30层 小怪 + [ScriptMethod(name: "—————— \ue062\ue061 ~ \ue063\ue060 层 ——————", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:"])] + public void 第21层(Event @event, ScriptAccessory accessory) { } + // 30 BOSS 提亚马特复制体 // 31~40层 小怪 + [ScriptMethod(name: "—————— \ue063\ue061 ~ \ue064\ue060 层 ——————", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:"])] + public void 第31层(Event @event, ScriptAccessory accessory) { } + // 40 BOSS 双塔尼亚复制体 // 41~50层 小怪 + [ScriptMethod(name: "—————— \ue064\ue061 ~ \ue065\ue060 层 ——————", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:"])] + public void 第41层(Event @event, ScriptAccessory accessory) { } + // 50 BOSS 自控化奇美拉 // 51~60层 小怪 + [ScriptMethod(name: "—————— \ue065\ue061 ~ \ue066\ue060 层 ——————", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:"])] + public void 第51层(Event @event, ScriptAccessory accessory) { } + // 60 BOSS 自控化弥诺陶洛斯 // 61~70层 小怪 + [ScriptMethod(name: "—————— \ue066\ue061 ~ \ue067\ue060 层 ——————", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:"])] + public void 第61层(Event @event, ScriptAccessory accessory) { } + // 70 BOSS 永恒 // 71~80层 小怪 + [ScriptMethod(name: "—————— \ue067\ue061 ~ \ue068\ue060 层 ——————", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:"])] + public void 第71层(Event @event, ScriptAccessory accessory) { } + // 80 BOSS 原形卡利亚 // 81~90层 小怪 + [ScriptMethod(name: "—————— \ue068\ue061 ~ \ue069\ue060 层 ——————", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:"])] + public void 第81层(Event @event, ScriptAccessory accessory) { } + // 90 BOSS 管理者 + // 91~100层 小怪 + [ScriptMethod(name: "—————— \ue069\ue061 ~ \ue061\ue060\ue060 层 ——————", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:"])] + public void 第91层(Event @event, ScriptAccessory accessory) { } + + + [ScriptMethod(name: "\ue05e 正统系统γ 高压电流(打断钢铁)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32878"])] + public void 正统系统γ_高压电流(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = $"正统系统γ_高压电流{@event.SourceId()}"; + dp.Color = new Vector4(1f, 0f, 0f, 0.5f); + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(30f); + dp.DestoryAt = 7200; + dp.ScaleMode = ScaleMode.ByTime; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + } + + [ScriptMethod(name: "正统系统γ 高压电流 打断销毁", eventType: EventTypeEnum.CancelAction, eventCondition: ["ActionId:32878"], userControl: false)] + public void 正统系统γ_高压电流打断销毁(Event @event, ScriptAccessory accessory) + { + //伤头:7551 + accessory.Method.RemoveDraw($"正统系统γ_高压电流{@event.SourceId()}"); + } + + [ScriptMethod(name: "\ue05e 正统系统γ 排斥炮(钢铁)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32877"])] + public void 正统系统γ_排斥炮(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统系统γ_排斥炮"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(10f); + dp.DestoryAt = 3700; + dp.ScaleMode = ScaleMode.ByTime; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + } + + [ScriptMethod(name: "\ue05e 正统系统γ 环形炮(月环)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32876"])] + public void 正统系统γ_环形炮(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统系统γ_环形炮"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(40f); + dp.InnerScale = new Vector2(8f); + dp.Radian = float.Pi * 2; + dp.DestoryAt = 3700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, dp); + } + + [ScriptMethod(name: "正统系统α 魔科学射线α(顺劈)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32884"])] + public void 正统系统α_魔科学射线α(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + + dp.Name = "正统系统α_魔科学射线α"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(50); + dp.Radian = 120f.DegToRad(); + dp.DestoryAt = 3700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); + } + + [ScriptMethod(name: "正统采掘无人机 魔科学炮(半场刀)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:33200"])] + public void 正统采掘无人机_魔科学炮(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + + dp.Name = "正统采掘无人机_魔科学炮"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(40); + dp.Radian = 180f.DegToRad(); + dp.DestoryAt = 3700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); + } + + [ScriptMethod(name: "正统无人机 雾散爆发(死后自爆)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32874"])] + public void 正统无人机_雾散爆发(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统无人机_雾散爆发"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(10f); + dp.DestoryAt = 4700; + dp.ScaleMode = ScaleMode.ByTime; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + } + + [ScriptMethod(name: "正统斯芬克斯 重击(顺劈)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32913"])] + public void 正统斯芬克斯_重击(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统斯芬克斯_重击"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(40); + dp.Radian = 60f.DegToRad(); + dp.DestoryAt = 2700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); + } + + [ScriptMethod(name: "正统恐慌装甲 猛扫(顺劈)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32893"])] + public void 正统恐慌装甲_猛扫(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统恐慌装甲_猛扫"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(8); + dp.Radian = 120f.DegToRad(); + dp.DestoryAt = 2700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); + } + + [ScriptMethod(name: "正统米特里达梯 激光剑(扇形)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32880"])] + public void 正统米特里达梯_激光剑(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统米特里达梯_激光剑"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(20); + dp.Radian = 270f.DegToRad(); + dp.DestoryAt = 3700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); + } + + [ScriptMethod(name: "正统浮游炮主板 攻城炮(直线)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32900"])] + public void 正统浮游炮主板_攻城炮(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统浮游炮主板_攻城炮"; + dp.Scale = new (4, 40f); + dp.Owner = @event.SourceId(); + dp.Color = accessory.Data.DefaultDangerColor; + dp.DestoryAt = 2700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Rect, dp); + } + + [ScriptMethod(name: "正统扎戈斧龙 残虐咆哮(脱战钢铁)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32937"])] + public void 正统扎戈斧龙_残虐咆哮(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = $"正统扎戈斧龙_残虐咆哮{@event.SourceId()}"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(30f); + dp.DestoryAt = 4700; + dp.ScaleMode = ScaleMode.ByTime; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + } + + [ScriptMethod(name: "正统扎戈斧龙 残虐咆哮打断销毁", eventType: EventTypeEnum.CancelAction, eventCondition: ["ActionId:32937"], userControl: false)] + public void 正统扎戈斧龙_残虐咆哮打断销毁(Event @event, ScriptAccessory accessory) + { + accessory.Method.RemoveDraw($"正统扎戈斧龙_残虐咆哮{@event.SourceId()}"); + } + + /* 需要抓取点名跟随被点名玩家 TargetIcon:Id 0016 + [ScriptMethod(name: "正统扎戈斧龙 XXX突袭(击退点名)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32888"])] + public void 正统扎戈斧龙_XXX突袭(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统扎戈斧龙_XXX突袭"; + dp.Color = new Vector4(1f, 0.4f, 0f, 1f); + dp.TargetObject = @event.TargetId(); + dp.Scale = new Vector2(10f); + dp.DestoryAt = 2700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + } + */ + + [ScriptMethod(name: "正统整备工 邪圣(脱战钢铁)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32931"])] + public void 正统整备工_邪圣(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = $"正统整备工_邪圣{@event.SourceId()}"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(30f); + dp.DestoryAt = 4700; + dp.ScaleMode = ScaleMode.ByTime; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + } + + [ScriptMethod(name: "正统整备工 邪圣打断销毁", eventType: EventTypeEnum.CancelAction, eventCondition: ["ActionId:32931"], userControl: false)] + public void 正统整备工_邪圣打断销毁(Event @event, ScriptAccessory accessory) + { + accessory.Method.RemoveDraw($"正统整备工_邪圣{@event.SourceId()}"); + } + + [ScriptMethod(name: "\ue05e 正统自控化弥诺陶洛斯 百廿八吨回转(钢铁)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32922"])] + public void 正统自控化弥诺陶洛斯_百廿八吨回转(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统自控化弥诺陶洛斯_百廿八吨回转"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(12f); + dp.DestoryAt = 3200; + dp.ScaleMode = ScaleMode.ByTime; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + } + + [ScriptMethod(name: "\ue05e 正统自控化弥诺陶洛斯 卅二吨重击(顺劈)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32921"])] + public void 正统自控化弥诺陶洛斯_卅二吨重击(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统自控化弥诺陶洛斯_卅二吨重击"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(35); + dp.Radian = 60f.DegToRad(); + dp.DestoryAt = 3200; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); + } + + [ScriptMethod(name: "\ue05e 正统自控化奇美拉 雷鸣吐息(左上顺劈)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32907"])] + public void 正统自控化奇美拉_雷鸣吐息(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统自控化奇美拉_雷鸣吐息"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(30); + dp.Radian = 120f.DegToRad(); + //dp.Rotation = 45f; //不知道转多少才是左上.jpg + dp.DestoryAt = 3200; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); + } + + [ScriptMethod(name: "\ue05e 正统自控化奇美拉 寒冰吐息(右上顺劈)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32906"])] + public void 正统自控化奇美拉_寒冰吐息(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统自控化奇美拉_寒冰吐息"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(30); + dp.Radian = 120f.DegToRad(); + //dp.Rotation = 45f; //不知道转多少才是右上.jpg + dp.DestoryAt = 3200; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); + } + + [ScriptMethod(name: "\ue05e 正统自控化奇美拉 蝎尾毒刺(背后扫尾)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32908"])] + public void 正统自控化奇美拉_蝎尾毒刺(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统自控化奇美拉_蝎尾毒刺"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(7); + dp.Radian = 90f.DegToRad(); + dp.Rotation = 180f; + dp.DestoryAt = 1700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); + } + + [ScriptMethod(name: "\ue05e 正统自控化奇美拉 寒冰咆哮(钢铁)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32909"])] + public void 正统自控化奇美拉_寒冰咆哮(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统自控化奇美拉_寒冰咆哮"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(9f); + dp.DestoryAt = 3200; + dp.ScaleMode = ScaleMode.ByTime; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + } + + [ScriptMethod(name: "\ue05e 正统自控化奇美拉 雷电咆哮(月环)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:32910"])] + public void 正统自控化奇美拉_雷电咆哮(Event @event, ScriptAccessory accessory) + { + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "正统自控化奇美拉_雷电咆哮"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(30f); + dp.InnerScale = new Vector2(6f); + dp.Radian = float.Pi * 2; + dp.DestoryAt = 3200; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, dp); + } // 99 BOSS 王者之剑 @@ -222,6 +535,7 @@ public class Eureka_Orthos { dp.Owner = @event.SourceId(); dp.Scale = new Vector2(10f); dp.DestoryAt = 5700; + dp.ScaleMode = ScaleMode.ByTime; accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); } @@ -233,13 +547,13 @@ public class Eureka_Orthos { dp.Color = accessory.Data.DefaultDangerColor; dp.Owner = @event.SourceId(); dp.Scale = new Vector2(20f); - dp.InnerScale = new Vector2(4f); + dp.InnerScale = new Vector2(5f); dp.Radian = float.Pi * 2; dp.DestoryAt = 5700; accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, dp); } - [ScriptMethod(name: "真空斩(四向顺劈)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:31342"])] + [ScriptMethod(name: "\ue069\ue069 真空斩(四向顺劈)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:31342"])] public void 真空斩(Event @event, ScriptAccessory accessory) { var dp = accessory.Data.GetDefaultDrawProperties(); @@ -253,41 +567,67 @@ public class Eureka_Orthos { accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Fan, dp); } - /* - [ScriptMethod(name: "【未完成】次元斩(扇环)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:regex:^(31339|3134[01])$"])] + + [ScriptMethod(name: "\ue069\ue069 次元斩(扇环)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:regex:^(31339|3134[01])$"])] public void 次元斩(Event @event, ScriptAccessory accessory) { var dp = accessory.Data.GetDefaultDrawProperties(); - - dp.Name = "次元斩"; - dp.Color = new Vector4(1f, 0f, 0f, 1f); + dp.Name = "次元斩内"; + dp.Color = new Vector4(1f, 0f, 0f, 3f); dp.Owner = @event.SourceId(); - dp.Scale = new Vector2(7,12,22); - dp.InnerScale = new Vector2(2,7,17f); + dp.Scale = new Vector2(7); + dp.InnerScale = new Vector2(2); + dp.Radian = 180f.DegToRad(); + dp.DestoryAt = 6700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, dp); + + dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "次元斩中"; + dp.Color = new Vector4(1f, 0f, 0f, 3f); + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(12); + dp.InnerScale = new Vector2(7); + dp.Radian = 180f.DegToRad(); + dp.DestoryAt = 6700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, dp); + + dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "次元斩外"; + dp.Color = new Vector4(1f, 0f, 0f, 3f); + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(22); + dp.InnerScale = new Vector2(17f); dp.Radian = 180f.DegToRad(); dp.DestoryAt = 6700; accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, dp); } - */ + - [ScriptMethod(name: "【未完成】极寒冰川 (冰花) ", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:31347"])] + [ScriptMethod(name: "\ue069\ue069 极寒冰川 (冰花) ", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:31347"])] public void 极寒冰川(Event @event, ScriptAccessory accessory) { - var dp = accessory.Data.GetDefaultDrawProperties(); - dp.Name = "极寒冰川"; - dp.Scale = new (5, 40f); - dp.Owner = @event.SourceId(); - dp.Color = accessory.Data.DefaultDangerColor; - dp.DestoryAt = 3700; - accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Rect, dp); + var currentProperty=accessory.Data.GetDefaultDrawProperties(); + currentProperty.Name="极寒冰川 (冰花) "; + currentProperty.Scale=new(5,40f); + currentProperty.Owner=@event.SourceId(); + currentProperty.Color=accessory.Data.DefaultDangerColor; + currentProperty.DestoryAt=3700; + + currentProperty.Rotation=0; + + //旋转45°,绘制8次 + for(int i=1;i<=8;++i) { + accessory.Method.SendDraw(DrawModeEnum.Default,DrawTypeEnum.Rect,currentProperty); + currentProperty.Rotation+=45f.DegToRad(); + } } - [ScriptMethod(name: "极热炎流(地火)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:31344"])] + [ScriptMethod(name: "\ue069\ue069 极热炎流(地火)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:31344"])] public void 极热炎流(Event @event, ScriptAccessory accessory) { var dp = accessory.Data.GetDefaultDrawProperties(); dp.Name = "极热炎流"; - dp.Color = new Vector4(1f, 0f, 0f, 1f); + dp.Color = new Vector4(1f, 0f, 0f, 1.5f); dp.Owner = @event.SourceId(); dp.Scale = new Vector2(8f); dp.DestoryAt = 1500; diff --git a/Deep_Dungeon/the_Palace_of_the_Dead.cs b/Deep_Dungeon/the_Palace_of_the_Dead.cs index c965084..fb337a2 100644 --- a/Deep_Dungeon/the_Palace_of_the_Dead.cs +++ b/Deep_Dungeon/the_Palace_of_the_Dead.cs @@ -17,10 +17,10 @@ using ECommons.MathHelpers; namespace the_Palace_of_the_Dead; - -[ScriptType(guid: "4210c323-eba4-4d67-a7e7-b90799494729", name: "死者宫殿", territorys: [561,562,563,564,565,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607], - version: "0.0.0.1", author: "Tetora", note: noteStr)] - +[ScriptType(guid: "4210c323-eba4-4d67-a7e7-b90799494729", name: "死者宫殿", author: "Tetora", + //territorys: uint [Regex:(56[1-5]|59[3-9]|60[0-7])], + territorys: [561,562,563,564,565,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607], + version: "0.0.0.1",note: noteStr)] public class the_Palace_of_the_Dead { @@ -229,12 +229,14 @@ public class the_Palace_of_the_Dead accessory.Method.RemoveDraw($"熔岩爆弹怪_震撼弹"); } + /* [ScriptMethod(name: "\ue061\ue069\ue060 爆弹怪教父 特大爆炸提示", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:7103"])] public void 爆弹怪教父_特大爆炸提示(Event @event, ScriptAccessory accessory) { accessory.Method.TextInfo("99.9%真伤,注意瞬回", duration: 10, true); accessory.Method.TTS("99.9%真伤,注意瞬回"); } + */ [ScriptMethod(name: "特大爆炸打断销毁", eventType: EventTypeEnum.CancelAction, eventCondition: ["ActionId:7103"], userControl: false)] public void 特大爆炸打断销毁(Event @event, ScriptAccessory accessory) @@ -245,6 +247,7 @@ public class the_Palace_of_the_Dead */ } + // 191~200层 小怪 [ScriptMethod(name: "—————— \ue061\ue069\ue061 ~ \ue062\ue060\ue060 层 ——————", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:"])] public void 第191层(Event @event, ScriptAccessory accessory) { } diff --git a/obj/Debug/net8.0-windows/TetoraKodakkuScript.AssemblyInfo.cs b/obj/Debug/net8.0-windows/TetoraKodakkuScript.AssemblyInfo.cs index 7d79a81..2951b62 100644 --- a/obj/Debug/net8.0-windows/TetoraKodakkuScript.AssemblyInfo.cs +++ b/obj/Debug/net8.0-windows/TetoraKodakkuScript.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("TetoraKodakkuScript")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+09ee437fc488e5d1db4bef4fe7aa980f182e873d")] [assembly: System.Reflection.AssemblyProductAttribute("TetoraKodakkuScript")] [assembly: System.Reflection.AssemblyTitleAttribute("TetoraKodakkuScript")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/obj/Debug/net8.0-windows/TetoraKodakkuScript.AssemblyInfoInputs.cache b/obj/Debug/net8.0-windows/TetoraKodakkuScript.AssemblyInfoInputs.cache index 6ee167b..63b202e 100644 --- a/obj/Debug/net8.0-windows/TetoraKodakkuScript.AssemblyInfoInputs.cache +++ b/obj/Debug/net8.0-windows/TetoraKodakkuScript.AssemblyInfoInputs.cache @@ -1 +1 @@ -e248aaba51f9da6c4cbe43f630732475a8624bee967167753409fa04c7a515cf +9285ff3a90bd77f9e3d4a5c084c3c7da26c50e1838bccc6b9c98ad1e2b1cf682