Skip to content
View in the app

A better way to browse. Learn more.

WRobot

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Silent crash

Featured Replies

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 an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.