diff --git a/yoyokity/test.cs b/yoyokity/test.cs deleted file mode 100644 index f873414..0000000 --- a/yoyokity/test.cs +++ /dev/null @@ -1,282 +0,0 @@ -using System; -using System.Numerics; -using System.Reflection.Metadata; -using System.Threading.Tasks; -using System.Windows.Forms; -using Dalamud.Utility.Numerics; -using FFXIVClientStructs.FFXIV.Client.Game.Character; -using KodakkuAssist.Extensions; -using KodakkuAssist.Module.Draw; -using KodakkuAssist.Module.GameEvent; -using KodakkuAssist.Module.GameEvent.Struct; -using KodakkuAssist.Script; -using static FFXIVClientStructs.FFXIV.Component.GUI.AtkTimer.Delegates; - -namespace MyScriptNamespace -{ - /// - /// name and version affect the script name and version number displayed in the user interface. - /// territorys specifies the regions where this trigger is effective. If left empty, it will be effective in all regions. - /// Classes with the same GUID will be considered the same trigger. Please ensure your GUID is unique and does not conflict with others. - /// - [ScriptType(name: "SimpleScript", territorys: [179, 979], guid: "d3b6a9b4-1e0e-4e0c-b7b7-ff1fce0e6cf1", version: "0.0.0.2", author: "yoyokity", note: noteStr, updateInfo: updateInfoStr)] - public class SimpleScript : IDisposable - { - const string noteStr = - """ - 这是一个提示文本. - 他有多行显示. - 请在这里放置你的提示文本 - """; - const string updateInfoStr = - """ - 这里是更新信息. - 他有多行显示. - 请在这里放置你的更新信息 - """; - /// - /// note will be displayed to the user as a tooltip. - /// - [UserSetting(note: "This is a test Property")] - public int prop1 { get; set; } = 1; - [UserSetting("Another Test Property")] - public bool prop2 { get; set; } = false; - - [UserSetting("UserColorSetting")] - public ScriptColor color { get; set; } = new(); - - [UserSetting("EnumSetting")] - public TestEnum enumSetting { get; set; } - int n = 0; - - - public enum TestEnum - { - First, - Second - } - /// - /// This method is called at the start of each battle reset. - /// If this method is not defined, the program will execute an empty method. - /// - public void Init(ScriptAccessory accessory) - { - n = 0; - } - - /// - /// name is the name of the method as presented to the user. - /// eventType is the type of event that triggers this method. - /// eventCondition is an array of strings specifying the properties that the event must have, - /// in the format name:value,For specific details, please refer to the GameEvent of the plugin. - /// userControl set to false will make the method not be shown to the user - /// and cannot be disabled by the user. - /// Please note, the method will be executed asynchronously. - /// - /// The event instance that triggers this method. - /// Pass the instances of methods and data that might be needed. - [ScriptMethod(name: "Test StartCasting", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:133"])] - public void PrintInfo(Event @event, ScriptAccessory accessory) - { - n++; - accessory.Method.SendChat($"/e {@event["SourceId"]} {n}-th use the Medica II"); - accessory.Log.Debug($"Prop2 is {prop2}"); - accessory.Log.Debug($"enum is {enumSetting}"); - } - - [ScriptMethod(eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:124"])] - public void DrawCircle(Event @event, ScriptAccessory accessory) - { - var sid = @event.SourceId; - - var prop = accessory.Data.GetDefaultDrawProperties(); - prop.Owner = accessory.Data.Me; - prop.DestoryAt = 10000; - prop.Color = accessory.Data.DefaultDangerColor; - prop.Scale = new(5); - prop.InnerScale = new(3); - var start = DateTime.Now; - var n = 0; - //accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, prop); - - accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, prop, (dpc) => - { - var elapsedSeconds = (float)(DateTime.Now - start).TotalSeconds; - float hue = (elapsedSeconds * 0.5f) % 1f; - dpc.Color = HueToRGB(hue); - if (elapsedSeconds > 2) - { - start = DateTime.Now; - n++; - dpc.Radian = MathF.PI / 4 * n; - } - dpc.Scale = new(3 + hue * 3); - }); - - - } - [ScriptMethod(eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:999999"])] - public void TestTTS(Event @event, ScriptAccessory accessory) - { - accessory.Method.TTS($"黏黏{DateTime.Now:T}"); - - } - - [ScriptMethod(name: "Test Suppress", eventType: EventTypeEnum.Waymark)] - public void TestSuppress(Event @event, ScriptAccessory accessory) - { - n++; - accessory.Log.Debug($"WayMark {n} {@event.EventTriggerSource}"); - uint id = 0x40000001; - if (accessory.Data.EnmityList.TryGetValue(id, out var objs)) - { - var firstId = objs[0]; - } - } - [ScriptMethod(name: "Test Action", eventType: EventTypeEnum.Waymark)] - public void TestAction(Event @event, ScriptAccessory accessory) - { - accessory.Method.UseAction(accessory.Data.Me, 37010); - } - [ScriptMethod(name: "Test ActionLocation", eventType: EventTypeEnum.Waymark)] - public void TestActionLocation(Event @event, ScriptAccessory accessory) - { - //accessory.Method.UseActionLocation(new System.Numerics.Vector3(-750, -30, -560), 3569, 1); - } - - [ScriptMethod(name: "Unconfigurable Method", eventType: EventTypeEnum.ActionEffect, eventCondition: ["ActionId:124"], userControl: false)] - public void UnconfigurableMethod(Event @event, ScriptAccessory accessory) - { - accessory.Log.Debug($"The unconfigurable method has been triggered."); - } - string guid = ""; - [ScriptMethod(eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:37010"])] - public void TestRunOnFrame(Event @event, ScriptAccessory accessory) - { - guid = accessory.Method.RegistFrameworkUpdateAction(() => - { - var a = 123; - }); - - } - [ScriptMethod(eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:124"])] - public void TestRunOnFrame2(Event @event, ScriptAccessory accessory) - { - accessory.Method.RegistFrameworkUpdateAction(TestRunOnFrame22); - } - [ScriptMethod(eventType: EventTypeEnum.ActionEffect, eventCondition: ["ActionId:124"])] - public void TestFadeOut(Event @event, ScriptAccessory accessory) - { - var dp = accessory.Data.GetDefaultDrawProperties(); - dp.Name = $"TestFadeOut"; - dp.Scale = new(5); - dp.Color = accessory.Data.DefaultDangerColor; - dp.Owner = 0x400003B8; - dp.FadeCentreObject = 0x400003B8; - dp.FadeDistance = 5; - dp.FadeMode = FadeMode.OmenCentre; - dp.DestoryAt = 15000; - accessory.Method.SendDraw(DrawModeEnum.Vfx, DrawTypeEnum.Circle, dp); - } - - [ScriptMethod(eventType: EventTypeEnum.ActionEffect, eventCondition: ["ActionId:99999"])] - public void TestCreateLockOn(Event @event, ScriptAccessory accessory) - { - var objHandle = accessory.Method.ObjectMethod.CreateEmptyChara(0x40001234); - Task.Delay(50).ContinueWith(t => - { - var start = DateTime.Now; - var handle = accessory.Method.VfxMethod.CreateLockOn(1, 0x40001234, new Vector4(1, 0, 0, 1), 10000, - (ref Vector4 color, ref Vector4 pos, ref Vector3 scale) => - { - var elapsedSeconds = (float)(DateTime.Now - start).TotalSeconds; - float hue = (elapsedSeconds * 0.5f) % 1f; - scale = new(hue * 1 + 0.5f); - color = HueToRGB(hue); - //pos = new(hue); - unsafe - { - var obj = (BattleChara*)objHandle; - obj->Position = new(hue); - } - - }); - }); - Task.Delay(5000).ContinueWith(t => { accessory.Method.ObjectMethod.DestoryChara(objHandle); }); - - - - } - - [ScriptMethod(eventType: EventTypeEnum.ActionEffect, eventCondition: ["ActionId:99999"])] - public void TestCreateOmen(Event @event, ScriptAccessory accessory) - { - var start = DateTime.Now; - var pos = accessory.Data.MyObject.Position; - var handle = accessory.Method.VfxMethod.CreateOmen(3, new(3), accessory.Data.MyObject.Position, 0, new Vector4(1, 0, 0, 1), 10000, - (ref Vector4 color, ref Vector4 pos, ref Vector3 scale) => - { - var elapsedSeconds = (float)(DateTime.Now - start).TotalSeconds; - float hue = (elapsedSeconds * 0.5f) % 1f; - color = HueToRGB(hue);//算一个rgb跑马灯颜色并赋值给颜色 - pos = new(accessory.Data.MyObject.Position, pos.W + MathF.PI / 100);//追踪游戏人物的坐标 - scale = new(2 + hue * 3);//随时间大小变化 - }); - } - [ScriptMethod(eventType: EventTypeEnum.ActionEffect, eventCondition: ["ActionId:99999"])] - public void TestMark(Event @event, ScriptAccessory accessory) - { - accessory.Method.Mark(accessory.Data.Me, KodakkuAssist.Module.GameOperate.MarkType.Attack1); - accessory.Method.Mark((uint)accessory.Data.MyObject.TargetObjectId, KodakkuAssist.Module.GameOperate.MarkType.Attack2, true); - } - [ScriptMethod(eventType: EventTypeEnum.ActionEffect, eventCondition: ["ActionId:99999"])] - public void TestClearMark(Event @event, ScriptAccessory accessory) - { - accessory.Method.MarkClear(); - } - System.Threading.Timer t; - [ScriptMethod(eventType: EventTypeEnum.ActionEffect, eventCondition: ["ActionId:99999"])] - public void TestVarDestory(Event @event, ScriptAccessory accessory) - { - t = new(_ => - { - accessory.Log.Debug($"来自版本F的timer,每5秒钟提示一次"); - - - }, null, TimeSpan.Zero, TimeSpan.FromSeconds(5)); - } - public void TestRunOnFrame22() - { - var a = 111; - } - private static Vector4 HueToRGB(float hue) - { - float r = 0, g = 0, b = 0; - float h = hue * 6f; - int segment = (int)h; - float f = h - segment; - - float p = 0f; - float q = 0.5f * (1f - f); - float t = 0.5f * f; - - switch (segment) - { - case 0: r = 1; g = t; b = p; break; - case 1: r = q; g = 1; b = p; break; - case 2: r = p; g = 1; b = t; break; - case 3: r = p; g = q; b = 1; break; - case 4: r = t; g = p; b = 1; break; - case 5: r = 1; g = p; b = q; break; - } - - return new Vector4(r, g, b, 1f); - } - - public void Dispose() - { - t.Dispose(); - } - } -} -