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!

tiniq007

New Member
Joined
May 12, 2013
Messages
49
I talked briefly with willz916 about this problem in another thread but I thought id make my own to see if others can help with this problem. What I am trying to achieve is run a corruption healing routine flawlessly meaning without any of the errors am experiencing atm.

Error: In a tactical flashpoint when I run the corruption healing routine it targets 1 person in group and it will continue to spam heals on that character non stop even when at full life. When I activate it in fleet it will auto target someone and spam heals non stop (I did this just to test). Even if I try to target someone else for example myself it will un target and retarget old target and start spamming heals.

I don't think there is something wrong with the healing routine itself because I tried it using PureRotation and it works flawlessly. PureRotation is outdated hence why I want it to work with default combat.

Here is the rotation that I tweak that's working flawlessly for me with PureRotation: Actually this one is for DefaultCombat. If you want it to work with PureRotation, just open up the corruption.cs in the PureRotation folder and changed the the code similar to the code below.

Code:
// Copyright (C) 2011-2015 Bossland GmbH
// See the file LICENSE for the source code's detailed license

using Buddy.BehaviorTree;
using DefaultCombat.Core;
using DefaultCombat.Helpers;

namespace DefaultCombat.Routines
{
	internal class Corruption : RotationBase
	{
		public override string Name
		{
			get { return "Sorcerer Corruption"; }
		}

		public override Composite Buffs
		{
			get
			{
				return new PrioritySelector(
					Spell.Buff("Mark of Power")
					);
			}
		}

        public override Composite Cooldowns
        {
            get
            {
                return new PrioritySelector(
                    Spell.Buff("Recklessness", ret => Targeting.ShouldAoeHeal),
                    Spell.Buff("Polarity Shift", ret => Targeting.ShouldAoeHeal),
                    Spell.Buff("Unnatural Preservation", ret => Me.HealthPercent <= 75)
                    );
            }
        }

        public override Composite SingleTarget
        {
            get
            {
                return new PrioritySelector(
                    //Movement
                    CombatMovement.CloseDistance(Distance.Ranged),
                    Spell.Cast("Mind Snap", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
                    Spell.Cast("Force Stun", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
                    Spell.Cast("Force Storm", ret => Targeting.ShouldAoe),
                    Spell.Cast("Crushing Darkness"),
                    Spell.DoT("Affliction", "Affliction"),
                    Spell.Cast("Shock"),
                    Spell.Cast("Force Lightning"),
                    Spell.Cast("Lightning Strike")
                    );
            }
        }

        public override Composite AreaOfEffect
        {
            get
            {
                return new PrioritySelector(
                    //Cleanse if needed
                    Spell.Cleanse("Expunge"),

                    //Emergency Heal (Insta-cast)
                    Spell.Heal("Dark Heal", 80, ret => Me.HasBuff("Altruism")),

                    //Aoe Heal
                    Spell.HealGround("Revivification", ret => Targeting.ShouldAoe),

                    //Single Target Healing
                    Spell.Heal("Innervate", 80),
                    Spell.Heal("Static Barrier", 90,
                        ret => HealTarget != null && !HealTarget.HasDebuff("Deionized") && !HealTarget.HasBuff("Static Barrier")),

                    //Buff Tank
                    Spell.Heal("Static Barrier", on => Tank, 100,
                        ret => Tank != null && Tank.InCombat && !Tank.HasDebuff("Deionized") && !Tank.HasBuff("Static Barrier")),
                    Spell.Heal("Roaming Mend", on => Tank, 100, ret => Tank != null && Tank.InCombat && Me.BuffCount("Roaming Mend Charges") <= 1),

                    //Use Force Bending
                    new Decorator(ret => Me.HasBuff("Force Bending"),
                        new PrioritySelector(
                            Spell.Heal("Innervate", 90),
                            Spell.Heal("Dark Infusion", 50)
                            )),

                    //Build Force Bending
                    Spell.HoT("Resurgence", 80),
                    Spell.HoT("Resurgence", on => Tank, 100, ret => Tank != null && Tank.InCombat),
					
					//Force Regen
                    Spell.Cast("Consuming Darkness", on => Me, ret => Me.HasBuff("Force Surge") && Me.HealthPercent > 15 && Me.ForcePercent < 80),

                    //Single Target Healing                  
                    Spell.Heal("Dark Heal", 35),
                    Spell.Heal("Dark Infusion", 85)
                    );
            }
        }
    }
}

And here is my log file:
 

Attachments

Last edited:
Not that this will solve all your problems, but healing specifically requires LockSelectors to be effective.
 
Ill give that a go and come back with the feedback. In the PureRotation I did leave it at LockSelectorbut for some reason I don't get the fps drop in pure like I do with default combat.
 
more editing has been done


Code:
// Copyright (C) 2011-2015 Bossland GmbH
// See the file LICENSE for the source code's detailed license

using Buddy.BehaviorTree;
using DefaultCombat.Core;
using DefaultCombat.Helpers;

namespace DefaultCombat.Routines
{
	internal class Corruption : RotationBase
	{
		public override string Name
		{
			get { return "Sorcerer Corruption"; }
		}

		public override Composite Buffs
		{
			get
			{
				return new PrioritySelector(
					Spell.Buff("Mark of Power")
					);
			}
		}

        public override Composite Cooldowns
        {
            get
            {
                return new PrioritySelector(
                    Spell.Buff("Recklessness", ret => Targeting.ShouldAoeHeal),
                    Spell.Buff("Polarity Shift", ret => Targeting.ShouldAoeHeal),
                    Spell.Buff("Consuming Darkness", ret => NeedForce()),
                    Spell.Buff("Unnatural Preservation", ret => Me.HealthPercent <= 75)
                    );
            }
        }

        public override Composite SingleTarget
        {
            get
            {
                return new PrioritySelector(
                    //Movement
                    CombatMovement.CloseDistance(Distance.Ranged),
                    Spell.Cast("Mind Snap", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
                    Spell.Cast("Force Stun", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
                    Spell.Cast("Force Storm", ret => Targeting.ShouldAoe),
                    Spell.Cast("Crushing Darkness"),
                    Spell.DoT("Affliction", "Affliction"),
                    Spell.Cast("Shock"),
                    Spell.Cast("Force Lightning"),
                    Spell.Cast("Lightning Strike")
                    );
            }
        }

        public override Composite AreaOfEffect
        {
            get
            {
                return new PrioritySelector(
                    //Cleanse if needed
                    Spell.Cleanse("Expunge"),

                    //Emergency Heal (Insta-cast)
                    Spell.Heal("Dark Heal", 80, ret => Me.HasBuff("Dark Concentration")),

                    //Aoe Heal
                    Spell.HealGround("Revivification", ret => Targeting.ShouldAoe),

                    //Single Target Healing
                    Spell.Heal("Innervate", 80),
                    Spell.Heal("Static Barrier", 90,
                        ret => HealTarget != null && !HealTarget.HasDebuff("Deionized") && !HealTarget.HasBuff("Static Barrier")),

                    //Buff Tank
                    Spell.Heal("Static Barrier", on => Tank, 100,
                        ret => Tank != null && Tank.InCombat && !Tank.HasDebuff("Deionized") && !Tank.HasBuff("Static Barrier")),
                    Spell.Heal("Roaming Mend", on => Tank, 100, ret => Tank != null && Tank.InCombat && Me.BuffCount("Roaming Mend Charges") <= 1),

                    //Use Force Bending
                    new Decorator(ret => Me.HasBuff("Force Bending"),
                        new LockSelector(
                            Spell.Heal("Innervate", 90),
                            Spell.Heal("Dark Infusion", 50)
                            )),

                    //Build Force Bending
                    Spell.HoT("Resurgence", 80),
                    Spell.HoT("Resurgence", on => Tank, 100, ret => Tank != null && Tank.InCombat),

                    //Single Target Healing                  
                    Spell.Heal("Dark Heal", 35),
                    Spell.Heal("Dark Infusion", 80)
                    );
            }
        }

        private bool NeedForce()
        {
            if (Me.ForcePercent <= 20)
                return true;
            if (Me.HasBuff("Revivification") && Me.ForcePercent < 80 && !Me.HasBuff("Reverse Corruptions"))
                return true;
            return false;
        }
    }
}
 
2015-11-11 17:30:45,781 [Main Bot Thread] ERROR Log - System.NullReferenceException: Object reference not set to an instance of an object.
at Buddy.Swtor.Objects.TorCharacter.get_Debuffs()
at Buddy.Swtor.Objects.TorCharacter.GetDebuff(String buffName)
at Buddy.Swtor.Objects.TorCharacter.HasDebuff(String buffName)
at DefaultCombat.Helpers.Extensions.NeedsCleanse(TorCharacter p) in c:\Users\bobtser\Desktop\Default\Routines\DefaultCombat\Helpers\Extensions.cs:line 187
at DefaultCombat.Core.Targeting.<get_ScanTargets>b__0(Object param0) in c:\Users\bobtser\Desktop\Default\Routines\DefaultCombat\Core\Targeting.cs:line 108
at Buddy.BehaviorTree.Action.RunAction(Object context)
at Buddy.BehaviorTree.Action.MlG>UvrgWr|"SE5zB6\*H>6\*3".MoveNext()
at (IEnumerator )
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.PrioritySelector.{\&Yss^Sxpp!TTbAbLg;XgQoJ$.MoveNext()
at (IEnumerator )
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.Decorator.tB$k;5(iFe \,:vQ3aQx<\.9:R3.MoveNext()
at (IEnumerator )
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.Decorator.tB$k;5(iFe \,:vQ3aQx<\.9:R3.MoveNext()
at (IEnumerator )
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.PrioritySelector.{\&Yss^Sxpp!TTbAbLg;XgQoJ$.MoveNext()
at (IEnumerator )
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.Common.HookExecutor.Run(Object context)
at Buddy.BehaviorTree.Action.RunAction(Object context)
at Buddy.BehaviorTree.Action.MlG>UvrgWr|"SE5zB6\*H>6\*3".MoveNext()
at (IEnumerator )
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.Decorator.tB$k;5(iFe \,:vQ3aQx<\.9:R3.MoveNext()
at (IEnumerator )
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.PrioritySelector.{\&Yss^Sxpp!TTbAbLg;XgQoJ$.MoveNext()
at (IEnumerator )
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.BehaviorTree.Decorator.tB$k;5(iFe \,:vQ3aQx<\.9:R3.MoveNext()
at (IEnumerator )
at Buddy.BehaviorTree.Composite.Tick(Object context)
at Buddy.CommonBot.BotMain.?????????????????????????????????????????()

What does this error mean? That is what pops up on my logs
Willz916 im sure that routine works fine but im still having the same problem and I think its not a routine problem, correct if im wrong.
Does anyone actually run a healing routine that's working fine for any of the healing class? Please let me know.
 
Last edited:
What does this error mean? That is what pops up on my logs
Willz916 im sure that routine works fine but im still having the same problem and I think its not a routine problem, correct if im wrong.
Does anyone actually run a healing routine that's working fine for any of the healing class? Please let me know.

did you use the one i uploaded at 18:07?
 
I just tested Sage/Seer on some Heroic missions, and it's just doing the same shit it's always done. The bot has trouble selecting other characters, especially companions, and distinguishing who is targeted. Not sure why it has this problem, but it's been there since I started botting in 2.0.
 
I just tested Sage/Seer on some Heroic missions, and it's just doing the same shit it's always done. The bot has trouble selecting other characters, especially companions, and distinguishing who is targeted. Not sure why it has this problem, but it's been there since I started botting in 2.0.


word
 
target your companion and switch to buddywing window. (press f12) to select them as the tank then switch back to the game window. this should help if you are running healer for your companions.
 
target your companion and switch to buddywing window. (press f12) to select them as the tank then switch back to the game window. this should help if you are running healer for your companions.

Do you find that works every time, or just once in a while? Eventually, we have to solve the targeting issue, or there's no point in even developing healing routines. Tank and DPS are fine, obviously.
 
it no longer works. I have not played sorc on the new bot yet and it DOES randomly target anyone near you and seems out of controll
 
Well until the targeting issue can be fixed with the healing routine's with defaultcombat here is a temp fix for now lol. Use PureRotation found here https://www.thebuddyforum.com/buddy...ines/217288-pures-routines-fixed-pve-pvp.html and you can use this code for corruption healing, it works quite well. Ill also put the operative healing routine if people want it since it also works with purerotation. As far as mercenary healing im still lvling my merc so ill do that next.

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using Buddy.BehaviorTree;
using Buddy.Swtor;
using Buddy.Swtor.Objects;
using PureSWTor.Helpers;
using PureSWTor.Core;
using PureSWTor.Managers;

using Action = Buddy.BehaviorTree.Action;
using Distance = PureSWTor.Helpers.Global.Distance;

namespace PureSWTor.Classes.Sorcerer
{
    class Corruption : RotationBase
    {
        #region Overrides of RotationBase

        public override string Revision
        {
            get { return ""; }
        }

        public override CharacterDiscipline KeySpec
        {
            get { return CharacterDiscipline.Corruption; }
        }

        public override string Name
        {
            get { return "Sorcerer Corruption"; }
        }

        public override Composite PreCombat
        {
            get
            {
                return new PrioritySelector(
                    PVERotation,
                    Spell.Buff("Mark of Power"),
                    Rest.HandleRest,
                    Scavenge.ScavengeCorpse
                    );
            }
        }

        private Composite HandleCoolDowns
        {
            get
            {
                return new PrioritySelector(
                    Spell.Buff("Recklessness", ret => HealingManager.ShouldAOE),
					Spell.Buff("Polarity Shift", ret => HealingManager.ShouldAOE),
                    Spell.Buff("Unnatural Preservation", ret => Me.HealthPercent < 50)
                    );
            }
        }

        private Composite Healing
        {
            get
            {
                return new PrioritySelector(
                    //BuffLog.Instance.LogTargetBuffs,

                    //Cleanse if needed
                    Spell.Cleanse("Expunge"),

                    //Emergency Heal (Insta-cast)
                    Spell.Heal("Dark Heal", 40, ret => Me.HasBuff("Altruism")),
					
					//Aoe Heal
                    Spell.HealGround("Revivification", ret => HealingManager.ShouldAOE),

                    //Single Target Healing
                    Spell.Heal("Innervate", 80),
                    Spell.Heal("Static Barrier", 90, ret => HealTarget != null && !HealTarget.HasDebuff("Deionized") && !HealTarget.HasBuff("Static Barrier")),     

                    //Buff Tank
                    Spell.HoT("Static Barrier", on => Tank, 100, ret => Tank != null && Tank.InCombat && !Tank.HasDebuff("Deionized") && !Tank.HasBuff("Static Barrier")),
					Spell.Heal("Roaming Mend", on => Tank, 100, ret => Tank != null && Tank.InCombat && Me.BuffCount("Roaming Mend Charges") <= 1),
                    
                    //Use Force Bending
                    new Decorator(ret => Me.HasBuff("Force Bending"),
                        new LockSelector(
                            Spell.Heal("Innervate", 90),
                            Spell.Heal("Dark Infusion", 50)
                        )),
                        
                    //Build Force Bending
                    Spell.HoT("Resurgence", 80),
                    Spell.HoT("Resurgence", on => Tank, 100, ret => Tank != null && Tank.InCombat),
                    
                    //Force Regen
                    Spell.Cast("Consuming Darkness", on => Me, ret => Me.HasBuff("Force Surge") && Me.HealthPercent > 15 && Me.ForcePercent < 80),

                    //Single Target Healing                  
                    Spell.Heal("Dark Heal", 35),
                    Spell.Heal("Dark Infusion", 85));
            }
        }

        private Composite DPS
        {
            get
            {
                    return new PrioritySelector(
                        //Movement
                        CloseDistance(Distance.Ranged),

                        //Rotation
                        Spell.Cast("Jolt", ret => Me.CurrentTarget.IsCasting && !LazyRaider.MovementDisabled),
                        Spell.Cast("Crushing Darkness"),
                        Spell.Cast("Affliction", ret => !Me.CurrentTarget.HasDebuff("Affliction")),
                        Spell.Cast("Lightning Strike"),
                        Spell.Cast("Shock"));
            }
        }

        private class LockSelector : PrioritySelector
        {
            public LockSelector(params Composite[] children)
                : base(children)
            {
            }

            public override RunStatus Tick(object context)
            {
                using (BuddyTor.Memory.AcquireFrame())
                {
                    return base.Tick(context);
                }
            }
        }

        public override Composite PVERotation
        {
            get
            {
                return new PrioritySelector(
                    HealingManager.AcquireHealTargets,
                    Spell.WaitForCast(),
                    HandleCoolDowns,                    
                    Healing,
                    new Decorator(ret => !Me.IsInParty(), DPS)
                );
            }
        }

        public override Composite PVPRotation
        {
            get { return PVERotation; }
        }

        #endregion
    }
}
 
Back
Top