private async void HideActor(Dalamud.Game.ClientState.Actors.Types.Actor a) { await Task.Run(async() => { try { var addrEntityType = a.Address + 0x8C; var addrRenderToggle = a.Address + 0x104; if (a is Dalamud.Game.ClientState.Actors.Types.PlayerCharacter) { Marshal.WriteByte(addrEntityType, 2); Marshal.WriteInt32(addrRenderToggle, 2050); //await Task.Delay(100); //Marshal.WriteInt32(addrRenderToggle, 0); await Task.Delay(100); Marshal.WriteByte(addrEntityType, 1); } else { Marshal.WriteInt32(addrRenderToggle, 2050); //await Task.Delay(10); //Marshal.WriteInt32(addrRenderToggle, 0); } } catch (Exception ex) { PluginLog.LogError(ex.ToString()); } }); }
public Void(Dalamud.Game.ClientState.Actors.Types.Actor actor, string reason) { Name = actor.Name; Time = DateTime.Now; ActorId = actor.ActorId; Reason = reason; }
public void DrawRingWorld(Dalamud.Game.ClientState.Actors.Types.Actor actor, float radius, int num_segments, float thicc, uint colour) { int seg = num_segments / 2; for (int i = 0; i <= num_segments; i++) { pluginInterface.Framework.Gui.WorldToScreen(new SharpDX.Vector3(actor.Position.X + (radius * (float)Math.Sin((Math.PI / seg) * i)), actor.Position.Z, actor.Position.Y + (radius * (float)Math.Cos((Math.PI / seg) * i))), out SharpDX.Vector2 pos); ImGui.GetWindowDrawList().PathLineTo(new Num.Vector2(pos.X, pos.Y)); } ImGui.GetWindowDrawList().PathStroke(colour, true, thicc); }
private async void RerenderActor(Dalamud.Game.ClientState.Actors.Types.Actor actor) { try { var addrRenderToggle = actor.Address + OFFSET_RENDER_TOGGLE; // Trigger a rerender Marshal.WriteInt32(addrRenderToggle, 2); await Task.Delay(100); Marshal.WriteInt32(addrRenderToggle, 0); } catch (Exception ex) { PluginLog.LogError(ex.ToString()); } }
private static byte GetStatus(Dalamud.Game.ClientState.Actors.Types.Actor actor) { IntPtr statusPtr = actor.Address + 0x1906; return(Marshal.ReadByte(statusPtr)); }
private bool InParty(Dalamud.Game.ClientState.Actors.Types.Actor actor) { return((GetStatus(actor) & 16) > 0); }