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.

Healing in BG

Featured Replies

Hello,

Is there a healing option in the Battlegrounder? Ive seen old threads and saw it would be implented. But i cant find how to set it up.

 

It was never implemented. You can write your own healing fightclasses in C# that will heal friends. If you want to follow friends around in combat

I suggest using C# code similar to this:

public void Initialize()
    {    
        FightEvents.OnFightLoop += FightEventsOnOnFightLoop;
        FightEvents.OnFightStart += FightEventsOnOnFightStart;
        
        Rotation();
    }

private void FightEventsOnOnFightStart(WoWUnit unit, CancelEventArgs cancelable)
    {
        if (!ObjectManager.GetObjectWoWPlayer()
            .Any(p => p.IsAlive && p.Reaction == Reaction.Friendly && p.Position.DistanceTo(unit.Position) <= 30) && !Me.HaveAnyDebuff("Idle", "Inactive"))
        {
            BlackList(unit);
            cancelable.Cancel = true;
            RunToHealTarget();
        }
    }

    private void BlackList(WoWUnit unit, uint seconds = 15)
    {
        wManagerSetting.AddBlackList(unit.Guid, (int) (seconds * 1000), true);
        ObjectManager.BlackListObjectManagerGuid.Add(unit.Guid);
        new Thread(() =>
        {
            Thread.Sleep((int) (seconds * 1000));
            ObjectManager.BlackListObjectManagerGuid.Remove(unit.Guid);
        }).Start();
    }

    private bool RunToHealTarget()
    {
        WoWUnit healTarget = ObjectManager.GetObjectWoWUnit()
            .Where(o => o.Guid != Me.Guid && o.IsAlive && o.Reaction == Reaction.Friendly && o.HealthPercent <= 80 &&
                        o.Type == WoWObjectType.Player && o.GetDistance <= 75)
            .OrderBy(o => o.GetDistance)
            .FirstOrDefault();

        if (healTarget != null && healTarget.GetDistance > 10 && !Me.IsCast)
        {
            Logging.WriteFight("healing target found - chasing it to heal");
            Me.Target = healTarget.Guid;
            if (GoToTask.ToPosition(healTarget.Position, 10f, false, context => Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && Me.HealthPercent > 55))
            {
                MovementManager.StopMoveTo(false, 1500);
                return true;
            }
        }

        return false;
    }

private void FightEventsOnOnFightLoop(WoWUnit unit, CancelEventArgs cancelable)
    {
        //No friend to heal in range!
        WoWUnit friendInRange = ObjectManager.GetObjectWoWPlayer()
            .Where(p => p.Guid != Me.Guid && p.IsAlive && p.Reaction == Reaction.Friendly && p.HealthPercent <= 80 && p.GetDistance <= 35 && !TraceLine.TraceLineGo(p.Position))
            .OrderBy(p => p.GetDistance)
            .FirstOrDefault();
        
        if (friendInRange == null)
        {
            if (RunToHealTarget())
            {
                cancelable.Cancel = true;
            }
        }
        else
        {
            if (friendInRange?.GetDistance > 30 && !Me.IsCast)
            {
                Logging.WriteFight("Running closer to heal target");
                MovementManager.MoveTo(friendInRange);
                Thread.Sleep(2500);
            }
            MovementManager.StopMoveTo(false, 1000);
        }
    }

For a resto shaman (vanilla) example fightclass, you can check out the source code here:

 

Edited by Matenia

  • 1 year later...

Well my fightclass behaves different in bg then in party mode. In the bg, it tries to melee always enemies, althought it has only heal spells defined ^^
Thats why I assume there is a different

Battlegrounder uses the GrindingBG and FightBG class. Decompile to see what they do. Replace GriningBG with your own state if you must.
And adjust your fightclass range, then it won't try to melee people as a caster...

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.