• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Default Combat Discussion

    Discussion in 'Combat Routines' started by Ama, Jan 5, 2015.

    1. Cryogenesis

      Cryogenesis Moderator Moderator

      Joined:
      Jul 13, 2010
      Messages:
      2,128
      Likes Received:
      13
      Trophy Points:
      38
      I can run the numbers for You tonight. Ilvl 220.
       
    2. Cass

      Cass New Member

      Joined:
      Jan 24, 2014
      Messages:
      98
      Likes Received:
      2
      Trophy Points:
      0
      Operative Concealment / Lethality

      Hello there

      Follow bellow updated rotations for operative concealment and lethality


      Concealment

      PHP:
      // 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
      {
          public class 
      Concealment RotationBase
          
      {
              public 
      override string Name
              
      {
                  
      get { return "Operative Concealment"; }
              }

              public 
      override Composite Buffs
              
      {
                  
      get
                  
      {
                      return new 
      PrioritySelector(
                          
      Spell.Buff("Coordination"),
                          
      Spell.Cast("Stealth"ret => !DefaultCombat.MovementDisabled && !Me.InCombat && !Me.HasBuff("Coordination"))
                          );
                  }
              }

              public 
      override Composite Cooldowns
              
      {
                  
      get
                  
      {
                      return new 
      PrioritySelector(
                          
      Spell.Buff("Adrenaline Probe"ret => Me.EnergyPercent <= 45),
                          
      Spell.Buff("Stim Boost"ret => Me.BuffCount("Tactical Advantage") < 2),
                          
      Spell.Buff("Shield Probe"ret => Me.HealthPercent <= 75),
                          
      Spell.Buff("Evasion"ret => Me.HealthPercent <= 50)
                          );
                  }
              }

              public 
      override Composite SingleTarget
              
      {
                  
      get
                  
      {
                      return new 
      PrioritySelector(
                          
      Spell.Cast("Backstab"ret => Me.IsStealthed && Me.IsBehind(Me.CurrentTarget)),

                          
      //Movement
                          
      CombatMovement.CloseDistance(Distance.Melee),
                          new 
      Decorator(ret => Me.ResourcePercent() < 60 && !Buddy.CommonBot.AbilityManager.CanCast("Adrenaline Probe"Me),
                              new 
      PrioritySelector(
                                  
      Spell.Cast("Rifle Shot")
                                  )),
                          new 
      Decorator(
                              
      ret => 
                              (
      Me.CurrentTarget.HasDebuff("Poisoned (Acid Blade)") || Me.CurrentTarget.HasDebuff("Corrosive Dart")) &&
                              !
      Me.IsStealthed,
                              new 
      PrioritySelector(Spell.Cast("Volatile Substance")))
                              ,
                          new 
      Decorator(
                              
      ret => 
                              
      Me.HasBuff("Tactical Advantage") && 
                              !
      Me.IsStealthed,
                              new 
      PrioritySelector(Spell.Cast("Laceration")))
                              ,
                          new 
      Decorator(
                              
      ret => 
                              (!
      Me.CurrentTarget.HasDebuff("Corrosive Dart") || Me.CurrentTarget.DebuffTimeLeft("Corrosive Dart") <= 2) &&
                              !
      Me.IsStealthed,
                              new 
      PrioritySelector(Spell.Cast("Corrosive Dart")))
                              ,
                          new 
      Decorator(
                              
      ret => 
                              !
      Me.HasBuff("Tactical Advantage") &&
                              !
      Me.IsStealthed,
                              new 
      PrioritySelector(Spell.Cast("Veiled Strike")))
                              ,
                          new 
      Decorator(
                              
      ret => 
                              !
      Me.HasBuff("Tactical Advantage") &&
                              !
      Buddy.CommonBot.AbilityManager.CanCast("Veiled Strike"Me.CurrentTarget) &&
                              
      Me.IsBehind(Me.CurrentTarget),
                              new 
      PrioritySelector(Spell.Cast("Backstab")))
                              ,
                          new 
      Decorator(
                              
      ret => 
                              !
      Me.HasBuff("Tactical Advantage") &&
                              !
      Buddy.CommonBot.AbilityManager.CanCast("Veiled Strike"Me.CurrentTarget) &&
                              !
      Buddy.CommonBot.AbilityManager.CanCast("Backstab"Me.CurrentTarget) &&
                              !
      Me.IsStealthed,
                              new 
      PrioritySelector(Spell.Cast("Crippling Slice")))
                              ,
                          new 
      Decorator(
                              
      ret => 
                              !
      Me.HasBuff("Tactical Advantage") &&
                              
      Me.EnergyPercent >= 87 &&
                              !
      Buddy.CommonBot.AbilityManager.CanCast("Veiled Strike"Me.CurrentTarget) &&
                              !
      Buddy.CommonBot.AbilityManager.CanCast("Crippling Slice"Me.CurrentTarget) &&
                              !
      Buddy.CommonBot.AbilityManager.CanCast("Backstab"Me.CurrentTarget) &&
                              !
      Me.IsStealthed,
                              new 
      PrioritySelector(Spell.Cast("Overload Shot")))
                          );
                  }
              }

              public 
      override Composite AreaOfEffect
              
      {
                  
      get
                  
      {
                      return new 
      Decorator(ret => Targeting.ShouldAoe,
                          new 
      PrioritySelector(
                              
      Spell.Cast("Fragmentation Grenade"),
                              
      Spell.Cast("Carbine Burst"))
                          );
                  }
              }
          }
      }
      Lethality

      PHP:
      // 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
      {
          public class 
      Lethality RotationBase
          
      {
              public 
      override string Name
              
      {
                  
      get { return "Operative Lethality"; }
              }

              public 
      override Composite Buffs
              
      {
                  
      get
                  
      {
                      return new 
      PrioritySelector(
                          
      Spell.Buff("Coordination"),
                          
      Spell.Cast("Stealth"ret => !Me.InCombat && !Me.HasBuff("Coordination"))
                          );
                  }
              }

              public 
      override Composite Cooldowns
              
      {
                  
      get
                  
      {
                      return new 
      PrioritySelector(
                          
      Spell.Buff("Adrenaline Probe"ret => Me.EnergyPercent <= 45),
                          
      Spell.Buff("Stim Boost"ret => Me.BuffCount("Tactical Advantage") < 1)
                      
      //    Spell.Buff("Shield Probe", ret => Me.HealthPercent <= 75)
                      //    Spell.Buff("Evasion", ret => Me.HealthPercent <= 50)
                          
      );
                  }
              }

              public 
      override Composite SingleTarget
              
      {
                  
      get
                  
      {
                      return new 
      PrioritySelector(
                          
      Spell.Cast("Hidden Strike"ret => Me.IsStealthed && Me.IsBehind(Me.CurrentTarget)),

                          
      //Movement
                          
      CombatMovement.CloseDistance(Distance.Melee),
                          
      Spell.Cast("Lethal Strike",    
                              
      ret => 
                              
      Me.IsStealthed)
                              ,
                          
      Spell.Cast("Corrosive Dart"
                              
      ret => 
                              (!
      Me.CurrentTarget.HasDebuff("Corrosive Dart") || Me.CurrentTarget.DebuffTimeLeft("Corrosive Dart") <= 2) &&
                              !
      Me.IsStealthed)
                              ,
                          
      Spell.Cast("Corrosive Grenade"
                              
      ret => 
                          
      //    Me.HasBuff("Cut Down") && 
                              
      (!Me.CurrentTarget.HasDebuff("Corrosive Grenade") || Me.CurrentTarget.DebuffTimeLeft("Corrosive Grenade") <= 2) &&
                              !
      Me.IsStealthed)
                              ,
                          
      Spell.Cast("Corrosive Assault"
                              
      ret => 
                              
      Me.HasBuff("Tactical Advantage") && 
                              
      Me.CurrentTarget.HasDebuff("Corrosive Dart") && 
                              
      Me.CurrentTarget.HasDebuff("Corrosive Grenade") &&
                              !
      Me.IsStealthed)
                              ,
                          
      Spell.Cast("Toxic Blast"
                              
      ret => 
                              
      Me.BuffCount("Tactical Advantage") < && 
                              
      Me.CurrentTarget.HasDebuff("Corrosive Dart") && 
                              
      Me.CurrentTarget.HasDebuff("Corrosive Grenade") &&
                              !
      Me.IsStealthed)
                              ,
                          
      Spell.Cast("Shiv"
                              
      ret => 
                              
      Me.BuffCount("Tactical Advantage") < && 
                              
      Me.CurrentTarget.HasDebuff("Corrosive Dart") && 
                              
      Me.CurrentTarget.HasDebuff("Corrosive Grenade") &&
                              !
      Buddy.CommonBot.AbilityManager.CanCast("Toxic Blast"Me.CurrentTarget) &&
                              !
      Me.IsStealthed)
                              ,
                          
      Spell.Cast("Lethal Strike",    
                              
      ret => 
                              
      Me.CurrentTarget.HasDebuff("Corrosive Dart") && 
                              
      Me.CurrentTarget.HasDebuff("Corrosive Grenade"))
                              ,
                          
      Spell.Cast("Overload Shot",    
                              
      ret => 
                              
      Me.EnergyPercent 85 &&
                              !
      Me.HasBuff("Tactical Advantage") && 
                              !
      Buddy.CommonBot.AbilityManager.CanCast("Shiv"Me.CurrentTarget) &&
                              !
      Buddy.CommonBot.AbilityManager.CanCast("Toxic Blast"Me.CurrentTarget) &&
                              !
      Buddy.CommonBot.AbilityManager.CanCast("Lethal Strike"Me.CurrentTarget) &&
                              
      Me.CurrentTarget.HasDebuff("Corrosive Dart") && 
                              
      Me.CurrentTarget.HasDebuff("Corrosive Grenade") &&
                              !
      Me.IsStealthed)
                              ,
                          
      Spell.Cast("Rifle Shot",
                              
      ret =>
                              
      Me.EnergyPercent 85 &&
                              !
      Me.HasBuff("Tactical Advantage") && 
                              !
      Buddy.CommonBot.AbilityManager.CanCast("Shiv"Me.CurrentTarget) &&
                              !
      Buddy.CommonBot.AbilityManager.CanCast("Toxic Blast"Me.CurrentTarget) &&
                              !
      Buddy.CommonBot.AbilityManager.CanCast("Lethal Strike"Me.CurrentTarget) &&
                              
      Me.CurrentTarget.HasDebuff("Corrosive Dart") && 
                              
      Me.CurrentTarget.HasDebuff("Corrosive Grenade") &&
                              !
      Me.IsStealthed)
                          );
                  }
              }

              public 
      override Composite AreaOfEffect
              
      {
                  
      get
                  
      {
                      return new 
      Decorator(ret => Targeting.ShouldAoe,
                          new 
      PrioritySelector(
                              
      Spell.Cast("Corrosive Grenade"
                                  
      ret => 
                                  !
      Me.CurrentTarget.HasDebuff("Corrosive Grenade") &&
                                  !
      Me.IsStealthed)
                                  ,
                              
      Spell.Cast("Fragmentation Grenade"
                                  
      ret => 
                                  !
      Me.CurrentTarget.HasDebuff("Corrosive Grenade") &&
                                  !
      Me.IsStealthed)
                                  ,
                              
      Spell.Cast("Carbine Burst"
                                  
      ret => 
                                  !
      Me.CurrentTarget.HasDebuff("Corrosive Grenade") &&
                                  !
      Me.IsStealthed)
                              )
                          );
                  }
              }
          }
      }
      Feedbacks are appreciated :eek:
       
    3. Cass

      Cass New Member

      Joined:
      Jan 24, 2014
      Messages:
      98
      Likes Received:
      2
      Trophy Points:
      0
      Mercenary Innovative Ordnance

      Hello there

      Follow bellow alternative rotation for merc IO. Feedback would be awesome

      PHP:
      // 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
      {
          public class 
      InnovativeOrdnance RotationBase
          
      {
              public 
      override string Name
              
      {
                  
      get { return "Mercenary Innovative Ordnance"; }
              }

              public 
      override Composite Buffs
              
      {
                  
      get
                  
      {
                      return new 
      PrioritySelector(
                          
      Spell.Buff("Combustible Gas Cylinder"),
                          
      Spell.Buff("Hunter's Boon")
                          );
                  }
              }

              public 
      override Composite Cooldowns
              
      {
                  
      get
                  
      {
                      return new 
      PrioritySelector(
                          
      Spell.Buff("Determination"ret => Me.IsStunned),
                          
      Spell.Buff("Supercharged Gas"ret => Me.BuffCount("Supercharge") == 10),
                          
      Spell.Buff("Thermal Sensor Override"ret => Me.InCombat && Me.CurrentTarget.BossOrGreater()),
                          
      Spell.Buff("Vent Heat"ret => Me.ResourcePercent() >= 50),
                          
      Spell.Buff("Energy Shield"ret => Me.HealthPercent <= 50),
                          
      Spell.Buff("Kolto Overload"ret => Me.HealthPercent <= 30)
                          );
                  }
              }

              public 
      override Composite SingleTarget
              
      {
                  
      get
                  
      {
                      return new 
      LockSelector(

                          
      //Movement
                          
      CombatMovement.CloseDistance(Distance.Ranged),
                          new 
      Decorator(ret => Me.ResourcePercent() > 40 && !Buddy.CommonBot.AbilityManager.CanCast("Vent Heat"Me),
                              new 
      PrioritySelector(
                                  
      Spell.Cast("Mag Shot"ret => Me.HasBuff("Innovative Particle Accelerator")),
                                  
      Spell.Cast("Rapid Shots")
                                  )),

                          
      //Rotation
                          
      Spell.Cast("Disabling Shot",
                              
      ret =>
                                  
      Me.CurrentTarget.IsCasting && Me.CurrentTarget.Distance <= Distance.Melee && !DefaultCombat.MovementDisabled),
                          new 
      Decorator(
                              
      ret => 
                              !
      Me.CurrentTarget.HasDebuff("Burning (Incendiary Missile)") || Me.CurrentTarget.DebuffTimeLeft("Burning (Incendiary Missile)") <= 2,
                              new 
      PrioritySelector(Spell.Cast("Incendiary Missile")))
                              ,
                          new 
      Decorator(
                              
      ret => 
                              
      Me.HasBuff("Innovative Particle Accelerator"),
                              new 
      PrioritySelector(Spell.Cast("Mag Shot")))
                              ,
                          new 
      Decorator(
                              
      ret => 
                              !
      Me.CurrentTarget.HasDebuff("Bleeding") || Me.CurrentTarget.DebuffTimeLeft("Bleeding") <= 2,
                              new 
      PrioritySelector(Spell.Cast("Serrated Shot")))
                              ,
                          new 
      Decorator(
                              
      ret => 
                              
      Me.BuffCount("Surging Shots") == 10,
                              new 
      PrioritySelector(Spell.Cast("Power Shot")))
                              ,
                          new 
      Decorator(
                              
      ret => 
                              
      Me.CurrentTarget.HasDebuff("Burning (Incendiary Missile)") &&
                              
      Me.CurrentTarget.HasDebuff("Bleeding") &&
                              !
      Me.HasBuff("Innovative Particle Accelerator"),
                              new 
      PrioritySelector(
                                  
      Spell.Cast("Thermal Detonator"),
                                  
      Spell.Cast("Electro Net"),
                                  
      Spell.Cast("Unload"),
                                  
      Spell.Cast("Missile Blast"ret => Me.HasBuff("Volatile Warhead")),
                                  
      Spell.Cast("Power Shot")))
                          );
                  }
              }

              public 
      override Composite AreaOfEffect
              
      {
                  
      get
                  
      {
                      return new 
      Decorator(ret => Targeting.ShouldAoe,
                          new 
      PrioritySelector(
                              
      Spell.CastOnGround("Death from Above"),
                              
      Spell.Cast("Fusion Missle"ret => Me.HasBuff("Thermal Sensor Override")),
                              
      Spell.Cast("Explosive Dart"))
                          );
                  }
              }
          }
      }
       
    4. pindleskin

      pindleskin Community Developer

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

      ceh430 Member

      Joined:
      Feb 1, 2014
      Messages:
      31
      Likes Received:
      0
      Trophy Points:
      6
      PHP:
      Spell.Buff("Dark Ward"ret => Me.BuffCount("Dark Ward") <= || Me.BuffTimeLeft("Dark Ward") < 3)
      seems its still not work, it will cast Dark Ward only when buff is COMPLETELY GONE

      i even tried to move it to single target rotation and change it into "Spell.Cast" but when i do that routine is broken so i guess its not way to make it work :D Spell.Buff ignore everything except "Me.HealthPercent" which is kinda sad..
       
    6. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      I think BuffTimeLeft calculates in ms, doesn't it? If so, you'd want 3000 instead of 3. If I'm wrong then it sounds like that's an issue though.
       
    7. ceh430

      ceh430 Member

      Joined:
      Feb 1, 2014
      Messages:
      31
      Likes Received:
      0
      Trophy Points:
      6
      tried even with 3000 instead 3 but it still cast ward only after buff vanish
       
    8. bonbi870

      bonbi870 New Member

      Joined:
      Oct 16, 2014
      Messages:
      13
      Likes Received:
      0
      Trophy Points:
      1
      hi, i am a watchman sentinel.

      just find it always did nothing even he is full focus.
      is this normal?
       
    9. phatcoolguy

      phatcoolguy New Member

      Joined:
      Oct 27, 2015
      Messages:
      4
      Likes Received:
      0
      Trophy Points:
      0
      Have the stealth issue been fixed yet for pvp? Would be awesome if it has or a way to work around it, thinking about going to get a BW license
       
    10. bonbi870

      bonbi870 New Member

      Joined:
      Oct 16, 2014
      Messages:
      13
      Likes Received:
      0
      Trophy Points:
      1
      Hello, English isn't my first language, so please excuse any mistakes.


      i am using this for my sentinal watchman
      i find that the original routine will not use Slash.
      this will make ur fousc always full and lose a lot dps

      i have mainly 220 gear (some 216)

      i have around 45xx dps when i use the current one for dummy (1.5M HP)

      but i will have around 49xx (almost 5k) dps if i added slash into routine.

      Feedback would be awesome


      Code:
      //Rotation
      					Spell.Cast("Force Kick", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
      					Spell.Buff("Zen", ret => Me.BuffCount("Centering") > 29),
      					Spell.Buff("Valorous Call", ret => Me.BuffCount("Centering") < 5),
      					Spell.Buff("Overload Saber", ret => !Me.HasBuff("Overload Saber")),
      					Spell.DoT("Cauterize", "Burning (Cauterize)"),
      					Spell.DoT("Force Melt", "Burning (Force Melt)"),
      					Spell.Cast("Dispatch", ret => Me.CurrentTarget.HealthPercent <= 30),
      					Spell.Cast("Merciless Slash"),
      					Spell.Cast("Zealous Strike", ret => Me.ActionPoints <= 5),
      					Spell.Cast("Blade Dance"),
      					Spell.Cast("Slash"),
      					Spell.Cast("Strike", ret => Me.ActionPoints <= 10)
      					);
      
       
    11. Starbrox

      Starbrox Member

      Joined:
      Mar 10, 2012
      Messages:
      413
      Likes Received:
      0
      Trophy Points:
      16
      Dunno if it's just me but Assa darkness won't do my Depredating Volts even tho i changed it in the file

      Code:
      Spell.Cast("Depredating Volts", ret => Me.BuffCount("Harnessed Darkness") == 3), <-- since we don't have Force lightning after lvl 58
      oki tested some more and it does cast it sometimes, but way to little considering it's prolly the hardest hitting ability we have...some help would be appriciated :)
       
      Last edited: Feb 3, 2016
    12. ltbutterman

      ltbutterman New Member

      Joined:
      Dec 24, 2011
      Messages:
      26
      Likes Received:
      0
      Trophy Points:
      1
      So I've been tweaking the madness.cs file a bit but it still doesn't feel right. It'll cast force lightning 4-5 times after the proc to instant cast Lightning strike is up and it does the same with demolish when the proc is up.. Can someone shed some light as to why it's doing that and if i should change anything else?

      EDIT:

      also just wanted some help on a line of code and if it works itll be universal for all dps classes that need/have threat dropping spells.

      Spell.Buff("Cloud Mind"ret => Me.CurrentTarget.IsFocusTarget))

      What I'm trying to do is make it cast Cloud mind when my currently selected target has me focused (e.g. I've pulled threat so i need to drop it to help tank asap). I'm pretty sure "IsFocusTarget" is wrong.

      EDIT 2:

      our profiles management of Demolish is terrible at the moment I need to know the code to set it to cast only when "Vulernable" debuff isn't on target.
       
      Last edited: Feb 5, 2016
    13. ltbutterman

      ltbutterman New Member

      Joined:
      Dec 24, 2011
      Messages:
      26
      Likes Received:
      0
      Trophy Points:
      1
      Also how are the healing profiles for sorc or any other class in general?
       
    14. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      That's because we had to switch from LockSelectors (which lock the frames to ensure that the bot executes the right ability) to PrioritySelectors (don't lock frames, better framerate). Try switching your PrioritySelectors to Lockselectors and see if that helps the problem. Be warned that it may lock up your FPS big time.
       
    15. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Heal targeting is still messed up. The profiles work great, they just don't target the right person :/
       
    16. ltbutterman

      ltbutterman New Member

      Joined:
      Dec 24, 2011
      Messages:
      26
      Likes Received:
      0
      Trophy Points:
      1
      Thanks, I just fixed that problem. whoever coded the profile misspelt a spell or two and was forgetting one important spell in rotation. So it's casting everything in right priority now except for the demolish problem im having where its just being cast off cooldown or if you set it to the default profile it'll cast it randomly lol.

      Any chance you could tell me a line of code to use to allow me to cast demolish only when a debuff called vulnerable has 2 seconds left on it?
       
    17. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Try this:
      Code:
      Spell.Cast("Demolish", ret => Me.CurrentTarget.DebuffTimeLeft("Vulnerable") <= 2),
       
    18. ltbutterman

      ltbutterman New Member

      Joined:
      Dec 24, 2011
      Messages:
      26
      Likes Received:
      0
      Trophy Points:
      1
      Still casting at exactly 23 seconds of debuff time left (i even changed it to 2000). How about an if command for it to cast only when debuff "vulnerable" is present? That way i don't mind it dropping off and it wont be over spamming the skill during critical rotation phase.
       
    19. legit

      legit Member

      Joined:
      Apr 28, 2013
      Messages:
      89
      Likes Received:
      0
      Trophy Points:
      6
      hey alltrueist,

      dude i love you - because you code the combat routines for that amazing game.
      currently i am playing a sorcerer - corruption (heal) and the routine is spamming heals

      do you need a logfile or do you know the problem ?

      best regards
      legit
       
    20. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Just "HasDebuff"
       

    Share This Page