public static bool ProductStop() { try { Fsm.StopEngine(); if (_instanceFromOtherAssembly != null) { EventsListener.UnHookEvent(WoWEventsType.LOOT_READY, callback => FarmingTask.TakeFarmingLoots()); EventsListener.UnHookEvent(WoWEventsType.LOOT_OPENED, callback => FarmingTask.TakeFarmingLoots()); EventsListener.UnHookEvent(WoWEventsType.CINEMATIC_START, callback => ToggleCinematic(true)); EventsListener.UnHookEvent(WoWEventsType.CINEMATIC_STOP, callback => ToggleCinematic(false)); _instanceFromOtherAssembly.Stop(); Thread.Sleep(500); MovementManager.StopMove(); Fight.StopFight(); CombatClass.DisposeCombatClass(); LongMove.StopLongMove(); Memory.WowMemory.GameFrameUnLock(); return(true); } } catch (Exception e) { Logging.WriteError("ProductStop(): " + e); } return(false); }
public static bool ProductRemoteStart(string[] args) { try { if (_instanceFromOtherAssembly != null) { _inAutoPause = false; _inManualPause = false; TravelToContinentId = 9999999; TravelFromContinentId = 9999999; TravelRegenerated = false; TravelTo = new Point(); TravelFrom = new Point(); ForceTravel = false; nManagerSetting.ActivateProductTipOff = false; _instanceFromOtherAssembly.RemoteStart(args); if (!_instanceFromOtherAssembly.IsStarted) { return(false); } EventsListener.HookEvent(WoWEventsType.LOOT_READY, callback => FarmingTask.TakeFarmingLoots()); EventsListener.HookEvent(WoWEventsType.LOOT_OPENED, callback => FarmingTask.TakeFarmingLoots()); EventsListener.HookEvent(WoWEventsType.CINEMATIC_START, callback => ToggleCinematic(true)); EventsListener.HookEvent(WoWEventsType.CINEMATIC_STOP, callback => ToggleCinematic(false)); Statistics.Reset(); // Fsm Fsm.States.Clear(); Fsm.AddState(new Relogger { Priority = 10 }); Fsm.AddState(new StopBotIf { Priority = 5 }); Fsm.AddState(new Idle { Priority = 1 }); Fsm.States.Sort(); Fsm.StartEngine(1); return(true); } } catch (Exception ex) { Logging.WriteError("ProductRemoteStart(): " + (object)ex, true); } return(false); }