예제 #1
0
 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);
 }
예제 #2
0
        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);
        }