From e11a18567cf00a3fed3198edca9ca5c6a8a53569 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: Sun, 13 Apr 2025 03:58:00 +0800 Subject: [PATCH] UPDATE --- 02-A-Realm-Reborn/Trials/DhormeChimera.cs | 17 ++- 04-Stormblood/Trial/Yojimbo.cs | 139 ++++++++++++++++++++++ OnlineRepo.json | 6 +- 3 files changed, 153 insertions(+), 9 deletions(-) create mode 100644 04-Stormblood/Trial/Yojimbo.cs diff --git a/02-A-Realm-Reborn/Trials/DhormeChimera.cs b/02-A-Realm-Reborn/Trials/DhormeChimera.cs index 3ffa2a1..aa4b89e 100644 --- a/02-A-Realm-Reborn/Trials/DhormeChimera.cs +++ b/02-A-Realm-Reborn/Trials/DhormeChimera.cs @@ -20,18 +20,21 @@ using System.Threading.Tasks; namespace DhormeChimera; [ScriptType(guid: "e24bb311-704f-4f4c-8188-87eaa8da8b29", name: "死化奇美拉讨伐战", territorys: [368], - version: "0.0.0.1", author: "Tetora", note: noteStr)] + version: "0.0.0.2", author: "Tetora", note: noteStr)] public class DhormeChimera { const string noteStr = """ - v0.0.0.1: + v0.0.0.2: LV50 死化奇美拉讨伐战 初版绘制 """; - [UserSetting("TTS开关")] - public bool isTTS { get; set; } = true; + [UserSetting("TTS开关(TTS请二选一开启)")] + public bool isTTS { get; set; } = false; + + [UserSetting("EdgeTTS开关(TTS请二选一开启)")] + public bool isEdgeTTS { get; set; } = true; [UserSetting("弹窗文本提示开关")] public bool isText { get; set; } = true; @@ -105,7 +108,8 @@ public class DhormeChimera { if ( @event.TargetId() != accessory.Data.Me) return; if (isText)accessory.Method.TextInfo("避开人群溜雷球", duration: 3500, true); - if (isTTS)accessory.Method.EdgeTTS("雷球点名"); + if (isTTS)accessory.Method.TTS("雷球点名"); + if (isEdgeTTS)accessory.Method.EdgeTTS("雷球点名"); } [ScriptMethod(name: "嘈杂的噪音(雷球)", eventType: EventTypeEnum.AddCombatant, eventCondition: ["DataId:2222"])] @@ -143,7 +147,8 @@ public class DhormeChimera public void 强化寒冰咆哮(Event @event, ScriptAccessory accessory) { if (isText)accessory.Method.TextInfo("打断或眩晕BOSS", duration: 2000, true); - if (isTTS)accessory.Method.EdgeTTS("打断或眩晕BOSS"); + if (isTTS)accessory.Method.TTS("打断或眩晕BOSS"); + if (isEdgeTTS)accessory.Method.EdgeTTS("打断或眩晕BOSS"); } [ScriptMethod(name: "雷电咆哮(月环)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:regex:^(1338|1442)$"])] diff --git a/04-Stormblood/Trial/Yojimbo.cs b/04-Stormblood/Trial/Yojimbo.cs new file mode 100644 index 0000000..ca59690 --- /dev/null +++ b/04-Stormblood/Trial/Yojimbo.cs @@ -0,0 +1,139 @@ +using System; +using System.ComponentModel; +using System.Linq; +using System.Numerics; +using System.Collections.Generic; +// using Dalamud.Game.ClientState.Objects.Subkinds; +// 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 KodakkuAssist.Data; +using ECommons; +using ECommons.DalamudServices; +using ECommons.GameFunctions; +using ECommons.MathHelpers; +using System.Threading.Tasks; + +namespace Kugane_Ohashi; + +public class Yojimbo +{ + +} + +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"]); + } +} \ No newline at end of file diff --git a/OnlineRepo.json b/OnlineRepo.json index 7e50fbd..b1ab12b 100644 --- a/OnlineRepo.json +++ b/OnlineRepo.json @@ -106,12 +106,12 @@ { "Name": "死化奇美拉讨伐战", "Guid": "e24bb311-704f-4f4c-8188-87eaa8da8b29", - "Version": "0.0.0.1", + "Version": "0.0.0.2", "Author": "Tetora", "Repo": "https://github.com/Hibiya615/TetoraKAScript/tree/main", "DownloadUrl": "https://raw.githubusercontent.com/Hibiya615/TetoraKAScript/refs/heads/main/02-A-Realm-Reborn/Trials/DhormeChimera.cs", - "Note": "v0.0.0.1:\r\nLV50 死化奇美拉讨伐战 初版绘制", - "UpdateInfo": "", + "Note": "v0.0.0.2:\r\nLV50 死化奇美拉讨伐战 初版绘制", + "UpdateInfo": "增加TTS选项", "TerritoryIds": [ 368 ]