public bool Start(Action stopCallback) { if (running) { return(false); } if (!ObjectManager.Instance.IsIngame) { return(false); } if (ObjectManager.Instance.Player == null) { return(false); } if (!CCLoader.Instance.LoadCustomClass(ObjectManager.Instance.Player.Class)) { return(false); } if (cmd == null) { cmd = new CMD(); } MainThread = new MainThread.Updater(Pulse, Settings.PulseRate); running = true; this.stopCallback = stopCallback; MainThread.Start(); return(running); }
public Manager(Controller controller, ObjectManager objectManager, ProfileLoader profileLoader) { Controller = controller; ObjectManager = objectManager; ProfileLoader = profileLoader; pulse = new MainThread.Updater(Pulse, 100); master = new object(); }
private ObjectManager() { _callback = Callback; _ourCallback = Marshal.GetFunctionPointerForDelegate(_callback); _updater = new MainThread.Updater(_EnumObjects, 50); _updater.Start(); WoWEventHandler.Instance.OnEvent += OnEvent; }
public Manager(CCLoader ccLoader, Controller controller, ObjectManager objectManager, ProfileLoader profileLoader) { CCLoader = ccLoader; Controller = controller; ObjectManager = objectManager; ProfileLoader = profileLoader; MainThread = new MainThread.Updater(Pulse, 250); obj = new object(); }
public Gatherer() { MainThread = new MainThread.Updater(Pulse, 100); cmd = new CMD(); db = JsonConvert.DeserializeObject <Database>(File.ReadAllText("gameobject.json")); bl = JsonConvert.DeserializeObject <List <KeyValuePair <GameObject, DateTime> > >(File.ReadAllText("blacklist.json")).ToDictionary(x => x.Key, y => y.Value); foreach (var go in bl) { if (go.Value > DateTime.Now.AddYears(1)) { CMD.goBlacklist.Add(go.Key, go.Value); } } }
// Constructor public FishingLogic(Fisher fisher) { this.fisher = fisher; obj = new object(); // Creating an updater instace which will execute LogicPulse each 250ms from the mainthread pulse = new MainThread.Updater(LogicPulse, 250); // Build the BehaviorTree which executes the logic // Sequence: Will jump to the next Do if the current Do returns success var builder = new BehaviourTreeBuilder(); tree = builder.Sequence("Fishing") .Sequence("Fishing") .Do("CheckIngame", data => { if (!ObjectManager.Instance.IsIngame) { return(BehaviourTreeStatus.Failure); } var player = ObjectManager.Instance.Player; // We are ingame and we find the player = success return(player == null ? BehaviourTreeStatus.Failure : BehaviourTreeStatus.Success); }) .Do("AntiTP", data => { var player = ObjectManager.Instance.Player; if (player.RealZoneText != startLocation) { Console.Beep(800, 2000); Stop(); return(BehaviourTreeStatus.Failure); } return(BehaviourTreeStatus.Success); }) .Do("CheckLootWindow", data => { var player = ObjectManager.Instance.Player; // Loot window closed? Continue if (player.CurrentLootGuid == 0 || !LootFrame.IsOpen) { return(BehaviourTreeStatus.Success); } // Otherwise try to loot, blacklist the current bobber and keep repeating this Do oldBobber = player.CurrentLootGuid; if (Wait.For("FishingLootWait2", 500)) { LootFrame.Instance.LootAll(); } return(BehaviourTreeStatus.Running); }) .Do("ApplyLure", data => { var player = ObjectManager.Instance.Player; var lure = Inventory.Instance.ExistingItems(lures).FirstOrDefault(); var bobber = ObjectManager.Instance.GameObjects.FirstOrDefault(x => x.OwnedBy == player.Guid && x.Guid != oldBobber); if ((player.ChannelingId != 0 && bobber != null) || player.IsMainhandEnchanted() || lure.Name == "") { return(BehaviourTreeStatus.Success); } if (!player.IsMainhandEnchanted() && Wait.For("ApplyingLure", 5500)) { player.EnchantMainhandItem(lure.Name); } return(BehaviourTreeStatus.Running); }) .Do("Cast", data => { var player = ObjectManager.Instance.Player; // We are channeling something (fishing)? Success! var bobber = ObjectManager.Instance.GameObjects.FirstOrDefault(x => x.OwnedBy == player.Guid && x.Guid != oldBobber); if (player.ChannelingId != 0 && bobber != null) { return(BehaviourTreeStatus.Success); } // Cast fishing (only each 1000ms tho) if (Wait.For("FishingWait", 1000)) { Spell.Instance.Cast("Fishing"); } ObjectManager.Instance.Player.AntiAfk(); // Stil running. Only success if we are casting fishing return(BehaviourTreeStatus.Running); }) .Do("WaitForFish", data => { var player = ObjectManager.Instance.Player; var bobber = ObjectManager.Instance.GameObjects.FirstOrDefault(x => x.OwnedBy == player.Guid && x.Guid != oldBobber); // No bobber? Fail if (bobber == null) { return(BehaviourTreeStatus.Failure); } // Bobber got no fish? Waiting! if (!bobber.IsBobbing) { return(BehaviourTreeStatus.Running); } // Got a fish on bobber? Loot it and add the guid of the bobber to the blacklist if (Wait.For("FishingLootWait", 500)) { bobber.Interact(false); } return(BehaviourTreeStatus.Success); }) .End() .Build(); }
public PriestHeal() { MainThread = new MainThread.Updater(Pulse, 250); }
public Follower() { MainThread = new MainThread.Updater(Pulse, 250); }
public WarriorRotation() { MainThread = new MainThread.Updater(Pulse, 250); }
public Quester() { MainThread = new MainThread.Updater(Pulse, 250); }