Jump to content

Nireves

Members
  • Posts

    1
  • Joined

  • Last visited

Posts posted by Nireves

  1. Hi. I have been using this bot for a few weeks now and have made a few fight classes and plugins, but I have noticed that sometimes the bot will just silently crash with no error or anything in the logs to indicate what happened. This seems to happen when I iterate over things like ObjectManager.GetObjectWoWPlayer(). 

    Has anyone else had issues like this?

    I have had the bot crash when using the included examples below. Not sure which actually causes the crash, as the log doesn't output any errors.

    I don't know if it makes a difference, but I do not compile these myself. I just add the .cs files to the plugin folder.

     

    using System;
    using System.Threading;
    using System.Threading.Tasks;
    using System.ComponentModel;
    using System.Collections.Generic;
    using robotManager.Helpful;
    using wManager.Wow.Helpers;
    using wManager.Events;
    using wManager.Wow.ObjectManager;
    
    public class Main : wManager.Plugin.IPlugin
    {
    	private List<string> potions = new List<string>(
    	    new string[] { 
    	        "Superior Healing Potion", 
    	        "Major Healing Potion"
    	    }
    	);
    
    
    	public void Initialize()
    	{
    		Loop();
    	}
    
    	private void Loop()
    	{
    		var hostileUnits = ObjectManager.GetUnitAttackPlayer().Count;
    
    		if ((ObjectManager.Me.HealthPercent < 10) || (hostileUnits == 1 && ObjectManager.Me.HealthPercent < 20 && ObjectManager.Target.HealthPercent >= 50) || (hostileUnits > 1 && ObjectManager.Me.HealthPercent <= 35))
    		{
    		    foreach(var potionName in potions) 
    		    {
    		        if (wManager.Wow.Helpers.Bag.GetItemContainerBagIdAndSlot(potionName)[0] > -1) 
    		        {
    		            wManager.Wow.Helpers.ItemsManager.UseItem(potionName);
    
    		            Log("PANIC! Using " + potionName + "!");
    
    		            break;
    		        } else {
    		        	Log("PANIC! Dying, but out of potions!");
    		        }
    		    }
    		} else {
    			Log("No need to panic.");
    		}
    
    		Thread.Sleep(2500);
    		Loop();
    	}
    
    	public void Dispose()
    	{
    		// Code to run when the bot is stopped
    	}
    
    	public void Settings()
    	{
    		// Code to run when someone clicks the plugin settings button
    	}
    
    	private void Log(string text)
        {
            Logging.WriteDebug("UseHealingPotions: " + text);
        }
    }
    using System;
    using System.ComponentModel;
    using System.Collections.Generic;
    using System.Threading;
    using System.Windows.Forms;
    using System.IO;
    using System.Linq;
    using System.Drawing;
    using robotManager;
    using robotManager.Helpful;
    using wManager.Wow.Class;
    using wManager.Wow.Enums;
    using wManager.Wow.Helpers;
    using wManager.Wow.Helpers.PathFinderClass;
    using wManager.Wow.ObjectManager;
    using robotManager.Products;
    
    public class Main : wManager.Plugin.IPlugin
    {
        private int distance = 64; 
    
        public void Initialize()
        {
            Loop();
        }
    
        private void Loop()
        {
            var nearestPlayer = ObjectManager.GetNearestWoWPlayer(ObjectManager.GetObjectWoWPlayer());
    
            if (nearestPlayer != null) 
            {
                var nearestPlayerDistance = nearestPlayer.GetDistance;
    
                if (Products.InPause == false && Fight.InFight == false && nearestPlayerDistance <= distance && nearestPlayer.IsOnTaxi == false)
                {
                    PauseBot();
                } 
                else if (Products.InPause == true && nearestPlayerDistance > distance)
                {
                    ResumeBot();
                }
            }
    
            if (!ObjectManager.Me.IsAlive && Products.InPause == true)
            {
                ResumeBot();
            } 
    
            Thread.Sleep(2500);
            Loop();
        }
    
        private void PauseBot()
        {
            Products.InPause = true;
    
            Log("Detected player near by. Pausing bot!");
        }
    
        private void ResumeBot()
        {
            Products.InPause = false;
    
            Log("No players detected near by. Resuming bot!");
        }
    
        private void Log(string text)
        {
            Logging.WriteDebug("STOP BOT: " + text);
        }
    
        public void Dispose()
        {
    
        }
    
        public void Settings()
        {
    
        }
    }

     

×
×
  • Create New...