protected override async Task <bool> RunAsync() { AtkAddonControl window = RaptureAtkUnitManager.GetWindowByName(_windowName); if (window == null) { PatternFinder patternFinder = new PatternFinder(Core.Memory); IntPtr agentVtable = patternFinder.Find(_agentOffset); int agentId = AgentModule.FindAgentIdByVtable(agentVtable); AgentModule.GetAgentInterfaceById(agentId).Toggle(); await Coroutine.Wait(5000, () => RaptureAtkUnitManager.GetWindowByName(_windowName) != null); window = RaptureAtkUnitManager.GetWindowByName(_windowName); } if (window != null) { // Choose Dungeon window.SendAction(2, 3, 15, 4, (ulong)Dungeon - 1); await Coroutine.Sleep(250); // Register for Duty window.SendAction(1, 3, 14); } return(false); }
public static void OpenRepair() { var patternFinder = new PatternFinder(Core.Memory); var off = patternFinder.Find("4C 8D 0D ? ? ? ? 45 33 C0 33 D2 48 8B C8 E8 ? ? ? ? Add 3 TraceRelative"); var func = patternFinder.Find("48 89 5C 24 ? 57 48 83 EC ? 88 51 ? 49 8B F9"); Core.Memory.CallInjected64 <IntPtr>(func, AgentModule.GetAgentInterfaceById(AgentId).Pointer, 0, 0, off); }
protected Agent(int id) { Id = id; AgentInterface = AgentModule.GetAgentInterfaceById(id); }
public async static Task OpenRepair() { Core.Memory.CallInjected64 <IntPtr>(func, AgentModule.GetAgentInterfaceById(AgentId).Pointer, 0, 0, off); await Coroutine.Wait(5000, () => Repair.IsOpen); }