• Visit Rebornbuddy
  • Supported Dungeonbuddy LFR's?

    Discussion in 'Honorbuddy Forum' started by dmann1986, Jul 8, 2015.

    1. dmann1986

      dmann1986 New Member

      Joined:
      Jan 15, 2010
      Messages:
      51
      Likes Received:
      1
      Trophy Points:
      0
      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!
       
    2. ryftobuddy

      ryftobuddy Banned

      Joined:
      Aug 19, 2011
      Messages:
      2,291
      Likes Received:
      34
      Trophy Points:
      0
      You have to have custom scripts for the wing you're trying to do. Changing an ID doesn't make something magically work.
       
    3. dmann1986

      dmann1986 New Member

      Joined:
      Jan 15, 2010
      Messages:
      51
      Likes Received:
      1
      Trophy Points:
      0
      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?
       
    4. ryftobuddy

      ryftobuddy Banned

      Joined:
      Aug 19, 2011
      Messages:
      2,291
      Likes Received:
      34
      Trophy Points:
      0
      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.
       
    5. arvz16

      arvz16 Member

      Joined:
      Oct 17, 2013
      Messages:
      116
      Likes Received:
      0
      Trophy Points:
      16

      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.
       
      Last edited: Jul 8, 2015
    6. ryftobuddy

      ryftobuddy Banned

      Joined:
      Aug 19, 2011
      Messages:
      2,291
      Likes Received:
      34
      Trophy Points:
      0
      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.
       
    7. dmann1986

      dmann1986 New Member

      Joined:
      Jan 15, 2010
      Messages:
      51
      Likes Received:
      1
      Trophy Points:
      0
      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.
       
    8. Jones2351

      Jones2351 Member

      Joined:
      Oct 1, 2012
      Messages:
      224
      Likes Received:
      1
      Trophy Points:
      18
      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 :D). 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.
       
    9. theoperator

      theoperator New Member

      Joined:
      Dec 18, 2010
      Messages:
      15
      Likes Received:
      0
      Trophy Points:
      0
      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.
       
    10. klepp0906

      klepp0906 Banned

      Joined:
      Apr 25, 2013
      Messages:
      1,352
      Likes Received:
      8
      Trophy Points:
      38
      Nope just hm. They're usually not this far behind but the bans have shaken the botting world up pretty well.
       

    Share This Page