What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal
RebornBuddy Forums

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Looking to reduce the minimum distance to mount & help with plugin coding

kazzo

New Member
Joined
Nov 18, 2016
Messages
8
Hello!

I want to reduce the minimum distance bot will mount on GB2, because currently the bot is running on foot alot , (i've tried tweaking the hotspot distance).

Also, im currently using the plugin Herbalism Tweaks (https://www.thebuddyforum.com/honor...-tweaks-disable-combat-perfect-foxflower.html) where im using combat disabled above 30% HP, im looking to tweak it that i enable combat when dismounted, and instantly mount when im leaving combat.

If anyone would be so kind to help me or guide me in the right direction with these problems it would be greatly appreciated, I have some C# experience so i can do some coding myself I just have no clue where to start :)

Cheers, Kazzo
 
The "flags" you're looking for are:

PHP:
Me.IsActuallyInCombat == false && Me.Mounted == false

Now, in questing profiles I use this:

PHP:
      <While Condition="Me.Mounted == false">
        <CustomBehavior File="RunCode" Code="mountStuck = mountStuck + 1;" />
        <If Condition="mountStuck &gt;=1">
          <CustomBehavior File="Misc\RunLua" Lua="MoveForwardStart();" WaitTime="1000" />
        </If>
          <CustomBehavior File="ForcedMount" />
      </While>

The first part is optional, I do it because sometimes the bot gets stuck in an infinite loop trying to mount below an object which instantly dismounts you (when the mount is too big).

Anyway, you need something similar for C#, maybe a function rather than a custom behavior. Good luck.
 
The "flags" you're looking for are:

PHP:
Me.IsActuallyInCombat == false && Me.Mounted == false

Now, in questing profiles I use this:

PHP:
      <While Condition="Me.Mounted == false">
        <CustomBehavior File="RunCode" Code="mountStuck = mountStuck + 1;" />
        <If Condition="mountStuck &gt;=1">
          <CustomBehavior File="Misc\RunLua" Lua="MoveForwardStart();" WaitTime="1000" />
        </If>
          <CustomBehavior File="ForcedMount" />
      </While>

The first part is optional, I do it because sometimes the bot gets stuck in an infinite loop trying to mount below an object which instantly dismounts you (when the mount is too big).

Anyway, you need something similar for C#, maybe a function rather than a custom behavior. Good luck.

Thanks! I'm just playing with it a bit so far I've come up with this

PHP:
using Styx.CommonBot.Mount;
//other using

   public override void Pulse()
        {
	    if(!Me.Mounted && !Me.Combat){
		Mount.SummonMount(); //not working
                Me.SummonMount(); // not working
		}
         }
only I cant get it to summon the mount. For the stuck part ill just go simple I think and make it try to mount up 3 times and after that stop trying to mount up.

If anyone wants to help it's much appreciated.. ill keep searching in the meanwhile :)
 
Thanks! I'm just playing with it a bit so far I've come up with this

PHP:
using Styx.CommonBot.Mount;
//other using

   public override void Pulse()
        {
	    if(!Me.Mounted && !Me.Combat){
		Mount.SummonMount(); //not working
                Me.SummonMount(); // not working
		}
         }
only I cant get it to summon the mount. For the stuck part ill just go simple I think and make it try to mount up 3 times and after that stop trying to mount up.

If anyone wants to help it's much appreciated.. ill keep searching in the meanwhile :)

Take a look at the ForcedMount.cs file in your Quest Behaviors. This is the actual code that mounts you:

PHP:
        private Composite CreateActualBehavior()
        {
            return new PrioritySelector(
                new Decorator(
                    ret => MountType == ForcedMountType.Ground,
                    new ActionRunCoroutine(ret => UtilityCoroutine.ExecuteMountStrategy(MountStrategyType.Mount, Styx.NavType.Run))),

                new Decorator(
                    ret => MountType == ForcedMountType.Flying,
                    new ActionRunCoroutine(ctx => MountForFlying()))
                );
        }
 
Take a look at the ForcedMount.cs file in your Quest Behaviors. This is the actual code that mounts you:

PHP:
        private Composite CreateActualBehavior()
        {
            return new PrioritySelector(
                new Decorator(
                    ret => MountType == ForcedMountType.Ground,
                    new ActionRunCoroutine(ret => UtilityCoroutine.ExecuteMountStrategy(MountStrategyType.Mount, Styx.NavType.Run))),

                new Decorator(
                    ret => MountType == ForcedMountType.Flying,
                    new ActionRunCoroutine(ctx => MountForFlying()))
                );
        }

Thanks a lot again for your input, I've looked at the class but can't seem to get it to work this way. Nevertheless I got it working
PHP:
if(triedMounting == false)
			{
                    WoWMovement.MoveStop();
                    Thread.Sleep(500);
                    Lua.DoString("RunMacroText(\"/run C_MountJournal.SummonByID(0)\")");
                    Thread.Sleep(1000);
                    Navigator.PlayerMover = new ClickToMoveMover();
                    triedMounting = true;
}

It's not all but I think you can see how I managed it :) It's quite messy code... but it works for 9/10 cases and doesn't get stuck wich is fine for me !

I've found some documentation (Honorbuddy Namespaces) but it's hard for me to work with it because it seems incomplete, I've also tried decompiling the bot but I figure that's not possible. How do people manage to write these big plugins? only with the docs?
 
Back
Top