Exemple #1
0
        public override void Run()
        {
            WoWPlayer TargetPlayer = ObjectManager.GetObjectWoWPlayer(_master.Guid);

            if (TargetPlayer == null)
            {
                if (_positionCheckTimer.IsReady)
                {
                    _master.Position = MimesisClientCom.GetMasterPosition();
                    _positionCheckTimer.Reset();
                }
            }
            else
            {
                _master.Position = TargetPlayer.Position;
            }
            if (MimesisSettings.CurrentSetting.ActivatePartyMode && _groupInvitCount < 3 && !Party.IsInGroup())
            {
                MimesisClientCom.JoinGroup();
                _groupInvitCount++;
                Thread.Sleep(500 + Usefuls.Latency);
            }
            if (!_master.Position.IsValid)
            {
                return;
            }
            else if (MimesisClientCom.HasTaskToDo())
            {
                MovementManager.Chasing = false;
            }
            else
            {
                if (_master.Position.DistanceTo(ObjectManager.Me.Position) < 3.0f)
                {
                    MovementManager.Chasing = false;
                    MovementManager.StopMove();
                }
                else if (_master.Position.Type.ToLower() == "flying" || _master.Position.Type.ToLower() == "swimming")
                {
                    MovementManager.MoveTo(_master.Position);
                    Logging.Write("Flying or swimming");
                }
                else
                {
                    MovementManager.Chasing = true;
                    uint baseAddress = MovementManager.FindTarget(ref _master, 3.0f);
                }
            }
            // now we should query for events
            if (_eventQueryTimer.IsReady)
            {
                MimesisClientCom.ProcessEvents();
                _eventQueryTimer.Reset();
            }
            MimesisClientCom.DoTasks();
            // on event START_LOOT_ROLL lookup if item is an update and roll need/cupidity
        }
Exemple #2
0
 internal static void Dispose()
 {
     try
     {
         CombatClass.DisposeCombatClass();
         Fsm.StopEngine();
         Fight.StopFight();
         MimesisClientCom.Disconnect();
     }
     catch (Exception e)
     {
         Logging.WriteError("Mimesis > Bot > Bot  > Dispose(): " + e);
     }
 }
Exemple #3
0
        internal static bool Pulse()
        {
            try
            {
                if (!MimesisClientCom.Connect())
                {
                    return(false);
                }
                // Load CC:
                CombatClass.LoadCombatClass();

                // FSM
                Fsm.States.Clear();

                Fsm.AddState(new Pause {
                    Priority = 200
                });
                Fsm.AddState(new Resurrect {
                    Priority = 90
                });
                Fsm.AddState(new IsAttacked {
                    Priority = 80
                });
                Fsm.AddState(new FightHostileTarget {
                    Priority = 70
                });
                Fsm.AddState(new Looting {
                    Priority = 60
                });
                Fsm.AddState(new Travel {
                    Priority = 50
                });
                Fsm.AddState(new Farming {
                    Priority = 40
                });
                Fsm.AddState(new SpecializationCheck {
                    Priority = 30
                });
                Fsm.AddState(new LevelupCheck {
                    Priority = 20
                });
                Fsm.AddState(new MimesisState {
                    Priority = 10
                });
                Fsm.AddState(new Idle {
                    Priority = 0
                });

                foreach (var statePlugin in Plugins.ListLoadedStatePlugins)
                {
                    Fsm.AddState(statePlugin);
                }

                Fsm.States.Sort();
                Fsm.StartEngine(7, "FSM Mimesis");

                return(true);
            }
            catch (Exception e)
            {
                try
                {
                    Dispose();
                }
                catch
                {
                }
                Logging.WriteError("Mimesis > Bot > Bot  > Pulse(): " + e);
                return(false);
            }
        }