Hey community, I wanted to know if there was a way to have HB run ALL of the WoD LRF's and not just the first 3 of them? I read somewhere you can force the LFR ID into HB and it will run it that way but I have no idea where to start doing that. If anyone has figured out just how to do this Id love you forever. Pls let me know if there's a way!
You have to have custom scripts for the wing you're trying to do. Changing an ID doesn't make something magically work.
Right...I figured as much, I just remember reading somewhere that it was doable but Im not sure how to do it, do you have any clue how to make dungeon buddy work with the rest of the LFR's?
Yes... Go look at the current scripts, come up with waypoints for everywhere you want to travel, add in spells to avoid, come up with custom attack tables... If it was a simple process, we'd see a lot of custom scripts.
it is doable tho. I used to do it, I just forgot how, but all I remember is. changing the LFR ID to the Normal ID, which HB will detect after trying to run it i.e. (these are just examples) 849 = LFR Walled City 850 (sample) = Normal Walled City u just need to change these IDs inside the scripts which even kids can do with notepad++ LFR Walled City - Dungeon Profile Code: <?xml version="1.0" encoding="utf-8" ?> <DungeonBuddyProfile> <Name>Walled City</Name> <DungeonId>[COLOR="#FF0000"][B]849[/B][/COLOR]</DungeonId> <BossEncounters> <Boss isFinal="false" entry="78714" name="Kargath Bladefist" killOrder="1" optional="false" X="3466.671" Y="7578.53" Z="55.33818"/> <Boss isFinal="false" entry="77404" name="The Butcher" killOrder="2" optional="false" X="3740.03" Y="7662.21" Z="24.95152"/> <Boss isFinal="true" entry="78491" name="Brackenspore" killOrder="3" optional="false" X="4113.032" Y="7744.417" Z="0.2547143"/> </BossEncounters> <Blackspots> </Blackspots> <PullBlackspots> </PullBlackspots> </DungeonBuddyProfile> LFR Walled City - Script Code: using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading.Tasks; using System.Windows.Documents; using System.Windows.Forms.VisualStyles; using Bots.DungeonBuddy.Attributes; using Bots.DungeonBuddy.Helpers; using Buddy.Coroutines; using Styx; using Styx.Common.Helpers; using Styx.CommonBot; using Styx.CommonBot.Coroutines; using Styx.Helpers; using Styx.Pathing; using Styx.WoWInternals; using Styx.WoWInternals.WoWObjects; using Vector2 = Tripper.Tools.Math.Vector2; // ReSharper disable CheckNamespace namespace Bots.DungeonBuddy.Raids.WarlordsOfDraenor // ReSharper restore CheckNamespace { // Class that contains common behavior for all WOD LFRs public abstract class WoDLfr : Dungeon { protected static LocalPlayer Me { get { return StyxWoW.Me; } } [EncounterHandler(0, "Root Handler")] public virtual Func<WoWUnit, Task<bool>> RootBehavior() { return async npc => { if (await ScriptHelpers.CancelCinematicIfPlaying()) return true; return false; }; } } public abstract class HighMaulFirstAndSecondWings : WoDLfr { private static readonly WoWPoint TheButcherShortcutStart = new WoWPoint(3607.386, 7690.8, 49.68718); private static readonly WoWPoint TheButcherShortcutEnd = new WoWPoint(3625.253, 7694.636, 24.75327); private static readonly Vector2[] _butcherBrackensporeTectusArea = { new Vector2(3665.059f, 7702.031f), new Vector2(3648.062f, 7721.875f), new Vector2(3635.858f, 7720.968f), new Vector2(3618.896f, 7699.576f), new Vector2(3678.591f, 7598.532f), new Vector2(3746.321f, 7578.863f), new Vector2(4205.131f, 7639.263f), new Vector2(4237.474f, 7889.901f), new Vector2(3821.84f, 7957.633f), new Vector2(3586.8f, 8124.939f), new Vector2(3427.558f, 7955.679f), new Vector2(3589.751f, 7789.652f), new Vector2(3650.96f, 7858.167f), new Vector2(3742.038f, 7750.912f), }; private readonly WoWPoint[] _combatStuckTrashPackLocs = { new WoWPoint(3650.748, 7811.058, 45.69595), new WoWPoint(3606.859, 7744.549, 49.52811), }; private static bool IsAtAreaByFirstBoss(WoWPoint location) { return location.Z > 40 && WoWMathHelper.IsPointInPoly(location, AreaByFirstBoss); } private static readonly Vector2[] AreaByFirstBoss = { new Vector2(3649.214f, 7736.967f), new Vector2(3551.274f, 7466.804f), new Vector2(3266.306f, 7510.375f), new Vector2(3564.712f, 7821.45f), }; private static bool IsAtButcherBrackensporeTectusArea(WoWPoint location) { return WoWMathHelper.IsPointInPoly(location, _butcherBrackensporeTectusArea); } protected internal async Task<bool> HandleTheButcherShortcut(WoWPoint destination) { // See if we need to take shortcut. if (!IsAtAreaByFirstBoss(Me.Location) || !IsAtButcherBrackensporeTectusArea(destination) || !_combatStuckTrashPackLocs.Any(loc => ScriptHelpers.GetUnfriendlyNpsAtLocation(loc, 20).Any())) { return false; } if (!Navigator.AtLocation(TheButcherShortcutStart)) return (await CommonCoroutines.MoveTo(TheButcherShortcutStart, "The Butcher shortcut")).IsSuccessful(); var timer = Stopwatch.StartNew(); while (timer.ElapsedMilliseconds < 5000 && !IsAtButcherBrackensporeTectusArea(Me.Location)) { WoWMovement.ClickToMove(TheButcherShortcutEnd); WoWMovement.Move(WoWMovement.MovementDirection.JumpAscend); await Coroutine.Sleep(120); WoWMovement.MoveStop(WoWMovement.MovementDirection.JumpAscend); if (await Coroutine.Wait(1000, () => IsAtButcherBrackensporeTectusArea(Me.Location))) break; } return false; } } public class WalledCity : HighMaulFirstAndSecondWings { #region Overrides of Dungeon public override uint DungeonId { get { return [COLOR="#FF0000"][B]849[/B][/COLOR]; } ... the script is pretty long, so I just posted the ones until the "DungeonId", but the script goes on after that, but it's the only thing that matters to us. you just need to change both of them (Dungeon Profile & Script) with the ID of your current Walled City [Normal]. Note: this doesn't run all the LFRs, just the one already scripted by HB. this method just make it so u can run the normal mode of the already scripted LFRs with the bot. which I don't see the point of doing, but yeah doing this is a bit of work. but it's doable.
The question was how to make dungeonbuddy work for LFR raids that aren't currently scripted. If you don't have a script already, changing the dungeonid won't help.
Ok got it, seems like a lot of pointless work when I can just enable enyo and run through it manually, altho I would love it if I could just hit start on dungeon buddy come back like 2 hours later and ALL my lfr's were completed then run it on another toon.
Well, avoiding spells is pretty much pointless as it's lfr. It's even more obvious that you bot in LFR because you dodge every spell (watched my toon in Highmaul and it was VERY obvious ). Same goes for Heroic dungeons when your gear is appropriate to high end content raiding but your toon dodges every 5k dmg spell. But I guess, as Dungeonbuddy can't be customised, we just have to deal with it.
If anything that only indicates the dodge behavior should be made more procedural so it's not the same move to avoid every time. There's nothing wrong with dodging spells. I know plenty of human only players with top gear who still avoid small damage spells because that's their play style.
Nope just hm. They're usually not this far behind but the bans have shaken the botting world up pretty well.