November 2, 20187 yr 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.
November 2, 20187 yr 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 November 2, 20187 yr by Matenia
October 20, 20205 yr @DroidzIs the source code of the battlegrounder product somewhere public? I would like to adjust it, to work with healers ?
October 20, 20205 yr Even tho I’d love to see the battleground code also, healing is part of fightclass, not the product
October 22, 20205 yr 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
October 22, 20205 yr 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