• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Default combat healing routine problem

    Discussion in 'Buddy Wing Forum' started by tiniq007, Nov 11, 2015.

    1. tiniq007

      tiniq007 New Member

      Joined:
      May 12, 2013
      Messages:
      49
      Likes Received:
      0
      Trophy Points:
      0
      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:
       

      Attached Files:

      Last edited: Nov 11, 2015
    2. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Not that this will solve all your problems, but healing specifically requires LockSelectors to be effective.
       
    3. tiniq007

      tiniq007 New Member

      Joined:
      May 12, 2013
      Messages:
      49
      Likes Received:
      0
      Trophy Points:
      0
      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.
       
    4. willz916

      willz916 Member Legendary

      Joined:
      Jan 22, 2014
      Messages:
      303
      Likes Received:
      2
      Trophy Points:
      18
      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;
              }
          }
      }
      
       
    5. tiniq007

      tiniq007 New Member

      Joined:
      May 12, 2013
      Messages:
      49
      Likes Received:
      0
      Trophy Points:
      0
      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: Nov 11, 2015
    6. willz916

      willz916 Member Legendary

      Joined:
      Jan 22, 2014
      Messages:
      303
      Likes Received:
      2
      Trophy Points:
      18
      did you use the one i uploaded at 18:07?
       
    7. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      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.
       
    8. willz916

      willz916 Member Legendary

      Joined:
      Jan 22, 2014
      Messages:
      303
      Likes Received:
      2
      Trophy Points:
      18

      word
       
    9. steadygrind

      steadygrind Member

      Joined:
      Jan 29, 2015
      Messages:
      63
      Likes Received:
      1
      Trophy Points:
      8
      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.
       
    10. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      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.
       
    11. steadygrind

      steadygrind Member

      Joined:
      Jan 29, 2015
      Messages:
      63
      Likes Received:
      1
      Trophy Points:
      8
      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
       
    12. tiniq007

      tiniq007 New Member

      Joined:
      May 12, 2013
      Messages:
      49
      Likes Received:
      0
      Trophy Points:
      0
      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
          }
      }
      
       

    Share This Page