• Visit Rebornbuddy
  • DefaultCombat 4.0 Consolidated Changes

    Discussion in 'Archives' started by alltrueist, Nov 6, 2015.

    1. willz916

      willz916 Member Legendary

      Joined:
      Jan 22, 2014
      Messages:
      303
      Likes Received:
      2
      Trophy Points:
      18
      a few priority changes in the rot and biggest thing was to take snipe out completely it was draining too much energy with human reaction times you should almost never use snipe so i f that is the case put in a free ability that will damage thus making him able to use more abilities more often crazy hoe that 15 energy was making a big hit in my pool. also changed some values on when adren probe is used
      ** uses a few parse to verify
       
      Last edited: Nov 14, 2015
    2. Markeen

      Markeen Member

      Joined:
      Oct 14, 2012
      Messages:
      153
      Likes Received:
      3
      Trophy Points:
      18
      Fixed Sorcerer Madness (taken from Balance Sage) replaced Lockselector with Priority Selector.


      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 Madness : RotationBase
      	{
      		public override string Name
      		{
      			get { return "Sorcerer Madness"; }
      		}
      
      
      		public override Composite Buffs
      		{
      			get
      			{
      				return new PrioritySelector(
      					Spell.Buff("Mark of Power")
      					);
      			}
      		}
      
      
      		public override Composite Cooldowns
      		{
      			get
      			{
      				return new PrioritySelector(
      					Spell.Buff("Force Barrier", ret => Me.HealthPercent <= 20),
      					Spell.Buff("Static Barrier", ret => !Me.HasBuff("Static Barrier") && !Me.HasDebuff("Deionized")),
      					Spell.Buff("Unnatural Preservation", ret => Me.HealthPercent <= 50),
      					Spell.Buff("Polarity Shift", ret => Me.CurrentTarget.BossOrGreater()),
      					Spell.Buff("Recklessness")
      					);
      			}
      		}
      
      
      		public override Composite SingleTarget
      		{
      			get
      			{
      				return new PrioritySelector(
      					//Movement
      					CombatMovement.CloseDistance(Distance.Ranged),
      					Spell.Cast("Jolt", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
      					Spell.Cast("Electrocute", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
      					Spell.Cast("Demolish", ret => Me.BuffCount("Wrath") == 4),
      				    Spell.DoT("Affliction", "Affliction"),
      					Spell.DoT("Creeping Terror", "Creeping Terror"),
      					Spell.CastOnGround("Death Field",
      						ret => Me.CurrentTarget.HasDebuff("Affliction") && Me.CurrentTarget.HasDebuff("Creeping Terror")),
      					Spell.Cast("Force Leach", ret => Me.CurrentTarget.HasDebuff("Affliction")),
      					Spell.Cast("Lightning Strike", ret => Me.BuffCount("Wrath") == 4),
      					Spell.Cast("Force Lightning", ret => Me.BuffCount("Wrath") < 4)
      					);
      			}
      		}
      
      
      		public override Composite AreaOfEffect
      		{
      			get
      			{
      				return new Decorator(ret => Targeting.ShouldAoe,
      					new PrioritySelector(
      						Spell.DoT("Affliction", "Affliction"),
      						Spell.DoT("Creeping Terror", "Creeping Terror"),
      						Spell.CastOnGround("Death Field",
      							ret => Me.CurrentTarget.HasDebuff("Affliction") && Me.CurrentTarget.HasDebuff("Creeping Terror")),
      						Spell.CastOnGround("Force Storm", ret => Me.CurrentTarget.HasDebuff("Overwhelmed (Mental)"))
      						));
      			}
      		}
      	}
      }
       
    3. Markeen

      Markeen Member

      Joined:
      Oct 14, 2012
      Messages:
      153
      Likes Received:
      3
      Trophy Points:
      18
      Advanced Protoype had a typo


      Code:
      namespace DefaultCombat.Routines{
          public class AdvancedPrototype : RotationBase
          {
              public override string Name
              {
                  get { return "PowerTech Advance Prototype"; }

      It should spell "{ return "PowerTech Advanced Prototype"; }", i was wondering why it didn't work and it took some time to actually find this problem lol.
       
    4. pindleskin

      pindleskin Community Developer

      Joined:
      Oct 24, 2012
      Messages:
      1,124
      Likes Received:
      2
      Trophy Points:
      38
      Thats just a string to return to a logger. Shouldn't cause the problem of not working.
       
    5. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Updated and pushed.
       
    6. Markeen

      Markeen Member

      Joined:
      Oct 14, 2012
      Messages:
      153
      Likes Received:
      3
      Trophy Points:
      18
      When i was on my Advanced prototype it didn't work, He gave me a weird description on my class when buddywing was booting up (maybe it was just the logger dunno.), i think it he called it Experimental weapon or something and the rotation was either wonky or didn't work for me, or i fucked up something dunno.

      Either way, it works now.

      Btw i have no clue about coding i just sifted through the code and compared it with Vanguard to look for a abnormality.
       
      Last edited: Dec 21, 2015
    7. Markeen

      Markeen Member

      Joined:
      Oct 14, 2012
      Messages:
      153
      Likes Received:
      3
      Trophy Points:
      18
      Update to Lightning Sorc routine, it now looks like the Tele Sage

      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 Lightning : RotationBase
      	{
      		public override string Name
      		{
      			get { return "Sorcerer Lightning"; }
      		}
      
      
      		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 => Me.CurrentTarget.StrongOrGreater()),
      					Spell.Buff("Polarity Shift", ret => Me.CurrentTarget.StrongOrGreater()),
      					Spell.Buff("Unnatural Preservation", ret => Me.HealthPercent <= 80),
      					Spell.HoT("Static Barrier", on => Me, 99, ret => !Me.HasDebuff("Deionized") && !Me.HasBuff("Static Barrier")),
      					Spell.Buff("Consuming Darkness", ret => Me.ForcePercent < 50 && !Me.HasDebuff("Weary"))
      					);
      			}
      		}
      
      
      		public override Composite SingleTarget
      		{
      			get
      			{
      				return new PrioritySelector(
      					//Movement
      					CombatMovement.CloseDistance(Distance.Ranged),
      
      
      					//Rotation
      					Spell.Cast("Affliction", ret => !Me.CurrentTarget.HasDebuff("Affliction")),
      					Spell.Cast("Thundering Blast", ret => Me.CurrentTarget.HasDebuff("Affliction")),
      					Spell.Cast("Lightning Flash"),
      					Spell.Cast("Crushing Darkness", ret => Me.HasBuff("Force Flash")),
      					Spell.Cast("Force Lightning", ret => Me.HasBuff("Lightning Barrage")),
      					Spell.Cast("Chain Lightning", ret => Me.HasBuff("Lightning Storm")),
      					Spell.Cast("Lightning Bolt", ret => Me.Level >= 57),
      					Spell.Cast("Lightning Strike", ret => Me.Level < 57),
      					Spell.Cast("Shock")
      					);
      			}
      		}
      
      
      		public override Composite AreaOfEffect
      		{
      			get
      			{
      				return new Decorator(ret => Targeting.ShouldAoe,
      					new PrioritySelector(
      						Spell.Cast("Chain Lightning", ret => Me.HasBuff("Lightning Storm")),
      						Spell.CastOnGround("Force Storm")
      						));
      			}
      		}
      	}
      }
       
      Last edited: Dec 22, 2015
    8. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      I'm out of town for the holidays, so I won't be able to update this until after the New Year.
       
    9. Markeen

      Markeen Member

      Joined:
      Oct 14, 2012
      Messages:
      153
      Likes Received:
      3
      Trophy Points:
      18
      Virulence Sniper added Snipe until level 57 then Lethal Shot, replaced Lock with Prio.


      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 Virulence : RotationBase
      	{
      		public override string Name
      		{
      			get { return "Sniper Virulence"; }
      		}
      
      
      		public override Composite Buffs
      		{
      			get
      			{
      				return new PrioritySelector(
      					Spell.Buff("Coordination")
      					);
      			}
      		}
      
      
      		public override Composite Cooldowns
      		{
      			get
      			{
      				return new PrioritySelector(
      					Spell.Buff("Escape"),
      					Spell.Buff("Shield Probe", ret => Me.HealthPercent <= 50),
      					Spell.Buff("Evasion", ret => Me.HealthPercent <= 30),
      					Spell.Buff("Adrenaline Probe", ret => Me.EnergyPercent <= 50),
      					Spell.Buff("Laze Target", ret => Me.CurrentTarget.StrongOrGreater()),
      					Spell.Cast("Target Acquired", ret => Me.CurrentTarget.StrongOrGreater())
      					);
      			}
      		}
      
      
      		public override Composite SingleTarget
      		{
      			get
      			{
      				return new PrioritySelector(
      					//Movement
      					CombatMovement.CloseDistance(Distance.Ranged),
      
      
      					//Low Energy
      					Spell.Cast("Rifle Shot", ret => Me.EnergyPercent < 60),
      
      
      					//Rotation
      					Spell.Cast("Distraction", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
                          Spell.DoT("Corrosive Dart", "Corrosive Dart"),
                          Spell.DoT("Corrosive Grenade", "Corrosive Grenade"),
                          Spell.Cast("Weakening Blast", ret => Me.CurrentTarget.HasDebuff("Corrosive Dart") && Me.CurrentTarget.HasDebuff("Corrosive Grenade")),
                          Spell.Cast("Cull", ret => Me.CurrentTarget.DebuffTimeLeft("Corrosive Dart") > 3 && Me.CurrentTarget.DebuffTimeLeft("Corrosive Grenade") > 3),
                          Spell.Cast("Takedown", ret => Me.CurrentTarget.HealthPercent <= 30 || Me.HasBuff("Lethal Takedown")),
      					Spell.Cast("Series of Shots"),
      					Spell.Cast("Lethal Shot", ret => Me.Level >= 57),
      					Spell.Cast("Snipe", ret => Me.Level < 57),
      					Spell.Cast("Rifle Shot")
      					);
      			}
      		}
      
      
      		public override Composite AreaOfEffect
      		{
      			get
      			{
      				return new Decorator(ret => Targeting.ShouldAoe,
      					new PrioritySelector(
      						Spell.CastOnGround("Orbital Strike"),
      						Spell.Cast("Fragmentation Grenade"),
                              Spell.DoT("Corrosive Dart", "Corrosive Dart"),
                              Spell.Cast("Corrosive Grenade", ret => Me.CurrentTarget.HasDebuff("Corrosive Dart") && !Me.CurrentTarget.HasDebuff("Corrosive Grenade")),
      						Spell.CastOnGround("Suppressive Fire")
      						));
      			}
      		}
      	}
      }
       
    10. Trance101

      Trance101 Member

      Joined:
      May 24, 2014
      Messages:
      81
      Likes Received:
      1
      Trophy Points:
      8
      This part of the command for interruptions, ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),

      This never seems to work for me, I have to change it to just ret => Me.CurrentTarget.IsCasting), to use interruption abilities. I'm just wondering what is that end command actually for?
       
    11. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      It defaults to only interrupt when you're running a profile. When you're using LazyRaider, it won't automatically interrupt unless you remove !DefaultCombat.MovementDisabled . This was designed to prevent suspicious activity when playing in groups (instant interrupts).
       
    12. Trance101

      Trance101 Member

      Joined:
      May 24, 2014
      Messages:
      81
      Likes Received:
      1
      Trophy Points:
      8
      Ahh I see. I just always remove it anyway. I only use this bot for pve...pvp though I'm sure people will be quick to complain, like in Wow :D.
       
    13. Cyanogen1

      Cyanogen1 Member

      Joined:
      Mar 5, 2014
      Messages:
      156
      Likes Received:
      0
      Trophy Points:
      16
      @alltrueist Know if there is anyway to fix the targeting checks for units that are in stealth and/or came out of stealth pvp wise?

      Routine pretty much disregards those as targets.
       
    14. pindleskin

      pindleskin Community Developer

      Joined:
      Oct 24, 2012
      Messages:
      1,124
      Likes Received:
      2
      Trophy Points:
      38
    15. Cyanogen1

      Cyanogen1 Member

      Joined:
      Mar 5, 2014
      Messages:
      156
      Likes Received:
      0
      Trophy Points:
      16
    16. pindleskin

      pindleskin Community Developer

      Joined:
      Oct 24, 2012
      Messages:
      1,124
      Likes Received:
      2
      Trophy Points:
      38
      I'd try in the class routine first. Me.CurrentTarget.IsStealthed
      If it doesn't work then targeting needs some more fixes :)
       
    17. Cyanogen1

      Cyanogen1 Member

      Joined:
      Mar 5, 2014
      Messages:
      156
      Likes Received:
      0
      Trophy Points:
      16
      I tried doing something like this, not sure if that is the correct way to use the property but..

      Code:
      new Decorator(ret => Me.CurrentTarget.IsStealthed,
      						new PrioritySelector(
      With the rotation after the priorityselector.

      EDIT: code loads fine, checking if it actually works.
       
      Last edited: Dec 28, 2015
    18. Markeen

      Markeen Member

      Joined:
      Oct 14, 2012
      Messages:
      153
      Likes Received:
      3
      Trophy Points:
      18
      Gunslinger Sharpshooter rework i removed some of the lines, looks like Sniper Marksman now.

      I really didn't like the Me.IsInCover and the forced cover when you where manually controlling it, keep it in if you wanna grind/automate.

      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 Sharpshooter : RotationBase
      	{
      		public override string Name
      		{
      			get { return "Gunslinger Sharpshooter"; }
      		}
      
      
      		public override Composite Buffs
      		{
      			get
      			{
      				return new PrioritySelector(
      					Spell.Buff("Lucky Shots")
      					);
      			}
      		}
      
      
      		public override Composite Cooldowns
      		{
      			get
      			{
      				return new PrioritySelector(
      					Spell.Buff("Escape"),
      					Spell.Buff("Burst Volley"),
      					Spell.Buff("Defense Screen", ret => Me.HealthPercent <= 70),
      					Spell.Buff("Dodge", ret => Me.HealthPercent <= 30),
      					Spell.Buff("Cool Head", ret => Me.EnergyPercent <= 50),
      					Spell.Buff("Smuggler's Luck"),
      					Spell.Buff("Illegal Mods")
      					);
      			}
      		}
      
      
      		public override Composite SingleTarget
      		{
      			get
      			{
      				return new PrioritySelector(
      					//Movement
      					CombatMovement.CloseDistance(Distance.Ranged),
      					
      					//Low Energy
      					new Decorator(ret => Me.EnergyPercent < 60,
      						new PrioritySelector(
      							Spell.Cast("Flurry of Bolts")
      							)),						
      					
      
      
      					//Rotation
      					Spell.Cast("Trickshot"),
      					Spell.Cast("Penetrating Rounds", ret => Me.Level >= 26),
      					Spell.Cast("Speed Shot", ret => Me.Level < 26),
      					Spell.DoT("Vital Shot", "Vital Shot"),
      					Spell.Cast("Aimed Shot", ret => Me.BuffCount("Charged Aim") == 2),
      					Spell.Cast("Quickdraw", ret => Me.CurrentTarget.HealthPercent <= 30),
      					Spell.Cast("Charged Burst")
      					);
      			}
      		}
      
      
      		public override Composite AreaOfEffect
      		{
      			get
      			{
      				return new Decorator(ret => Targeting.ShouldAoe,
      					new PrioritySelector(
      						Spell.CastOnGround("XS Freighter Flyby"),
      						Spell.Cast("Thermal Grenade"),
      						Spell.CastOnGround("Sweeping Gunfire")
      						));
      			}
      		}
      	}
      }
       
    19. Markeen

      Markeen Member

      Joined:
      Oct 14, 2012
      Messages:
      153
      Likes Received:
      3
      Trophy Points:
      18
      Gunslinger Saboteur rewrite/fix, took the rotation from dulfy.

      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 Saboteur : RotationBase
          {
              public override string Name
              {
                  get { return "Gunslinger Saboteur"; }
              }
      
      
              public override Composite Buffs
              {
                  get
                  {
                      return new PrioritySelector(
                          Spell.Buff("Lucky Shots")
                          );
                  }
              }
      
      
              public override Composite Cooldowns
              {
                  get
                  {
                      return new PrioritySelector(
                          Spell.Buff("Escape"),
                          Spell.Buff("Defense Screen", ret => Me.HealthPercent <= 50),
                          Spell.Buff("Dodge", ret => Me.HealthPercent <= 30),
                          Spell.Buff("Cool Head", ret => Me.EnergyPercent <= 50),
                          Spell.Buff("Smuggler's Luck"),
                          Spell.Buff("Illegal Mods")
                          );
                  }
              }
      
      
              public override Composite SingleTarget
              {
                  get
                  {
                      return new PrioritySelector(
                          //Low Energy
                          new Decorator(ret => Me.EnergyPercent < 60,
                              new PrioritySelector(
                              Spell.Cast("Thermal Grenade", ret => Me.HasBuff("Seize the Moment")),
                              Spell.Cast("Rifle Shot")
                              )),
      
      
                          //Movement
                          CombatMovement.CloseDistance(Distance.Ranged),
      
      
                          //Rotation
                          Spell.Cast("Distraction", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
                          Spell.Cast("Sabotage Charge"),
                          Spell.DoTGround("Incendiary Grenade", 9000),
                          Spell.Cast("Speed Shot"),
                          Spell.DoT("Shock Charge", "Shock Charge"),
                          Spell.Cast("Sabotage", ret => Me.CurrentTarget.HasDebuff("Shock Charge")),
                          Spell.Cast("Thermal Grenade", ret => Me.HasBuff("Seize the Moment")),
                          Spell.CastOnGround("XS Freighter Flyby", ret => Me.EnergyPercent > 75),
                          Spell.DoT("Vital Shot", "Vital Shot"),
                          Spell.Cast("Quickdraw", ret => Me.CurrentTarget.HealthPercent <= 30),
                          Spell.Cast("Rifle Shot")
                          );
                  }
              }
      
      
              public override Composite AreaOfEffect
              {
                  get
                  {
                      return new Decorator(ret => Targeting.ShouldAoe,
                          new PrioritySelector(
                              Spell.CastOnGround("XS Freighter Flyby"),
                              Spell.Cast("Incendiary Grenade"),
                              Spell.Cast("Thermal Grenade")
                              ));
                  }
              }
          }
      }
       
    20. Sippinhaterade

      Sippinhaterade Member

      Joined:
      Jul 10, 2011
      Messages:
      387
      Likes Received:
      2
      Trophy Points:
      18

    Share This Page