• Visit Rebornbuddy
  • DefaultCombat 4.0 Consolidated Changes

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

    1. woohah

      woohah Member

      Joined:
      Jan 15, 2010
      Messages:
      153
      Likes Received:
      5
      Trophy Points:
      18
      Would be super nice to have a custom interrupt list. Getting tired of having to do manual interrupts in raids. That possible?
       
    2. Cass

      Cass New Member

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

      Hello there

      Follow below updated rotations for operative dps. Feedbacks are welcome :eek:

      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)
                              )
                          );
                  }
              }
          }
      }
       
    3. Cass

      Cass New Member

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

      Hello there

      Bellow there is a alternative rotation for merc IO for feedback.

      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. Cryogenesis

      Cryogenesis Moderator Moderator

      Joined:
      Jul 13, 2010
      Messages:
      2,128
      Likes Received:
      13
      Trophy Points:
      38
      Would be nice if you guys. those who posted the new routines, would underbuild there new rotation with DPS numbers.
      Is it an increase then the devs can implement it. If you added stuff to make it more dynamic / wider in spell usage, please also state it :)
      More info why you made changes, the better they can understand why you did it and if its a viable alternative or new main rotation.
       
    5. Cass

      Cass New Member

      Joined:
      Jan 24, 2014
      Messages:
      98
      Likes Received:
      2
      Trophy Points:
      0
      The rotations for operative that come with defaultcombat are not 4.0 compliant with old skills and missing the new ones.

      About the merc IO since my char its not well geared so i couldnt use as a proper dps value.

      As the PrioritySelector seems to skip some parts of the rotations. I tried to use decorators as a way to ensure that the conditionals are met when executing it, without sacrificing fps. It seems to help a bit, at least for me, but not 100%. Thats why i asked the feedback for.;)
       
    6. FriskyAssassin

      FriskyAssassin New Member

      Joined:
      Jul 15, 2013
      Messages:
      21
      Likes Received:
      0
      Trophy Points:
      0
      I was looking at the routine for Advanced Prototype and noticed something that may cause it to not work right.

      //Low Energy
      new Decorator(ret => Me.ResourcePercent() < 50,
      new PrioritySelector(
      Spell.Cast("Rail Shot", ret => Me.HasBuff("Prototype Particle Accelerator")),
      Spell.Cast("Rapid Shots")
      )),

      On a bounty hunter, heat starts at 0 resources and goes up as you use abilities. The code says to use rapid shots when below 50 heat. It should be > 50 so it will only use it once you have used half your heat. I personally changed it to >75 and noticed a huge increase in dps in PVP. Probably just a small typo when it was being coded.
       
    7. Cydex

      Cydex New Member

      Joined:
      Oct 7, 2014
      Messages:
      24
      Likes Received:
      0
      Trophy Points:
      0
      Tweaked a bit on the Mercenary Arsenal rotation. Its very good as it is in DefaultCombat, so it might not be worth it to implement. I did 3 rounds on 1.5M dummy on my ship with Default, and calculated an average, then 3 rounds with my added tweaks. The difference was 55 dps, so it was not really that much. (From average 4901 to 4956)

      What i like about it, is that i implement the usage of Power Surge to pop a couple of fast Tracer Missiles. (I do have the talent, so i guess without that the difference would be very little).

      Anyway:
      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
      {
      	public class Arsenal : RotationBase
      	{
      		public override string Name
      		{
      			get { return "Mercenary Arsenal"; }
      		}
      
      		public override Composite Buffs
      		{
      			get
      			{
      				return new PrioritySelector(
      					Spell.Buff("High Velocity Gas Cylinder"),
      					Spell.Buff("Hunter's Boon")
      					);
      			}
      		}
      
      		public override Composite Cooldowns
      		{
      			get
      			{
      				return new PrioritySelector(
      					Spell.Buff("Determination", ret => Me.IsStunned),
      					Spell.Buff("Vent Heat", ret => Me.ResourcePercent() >= 60),
      					Spell.Buff("Supercharged Gas", ret => Me.BuffCount("Supercharge") == 10),
      					Spell.Buff("Energy Shield", ret => Me.HealthPercent <= 60),
      					Spell.Buff("Emergency Scan", ret => Me.HealthPercent <= 40),
      					Spell.Buff("Kolto Overload", ret => Me.HealthPercent <= 30),
      					Spell.Buff("Power Surge", ret => !Me.HasBuff("Barrage"))
      					);
      			}
      		}
      
      		public override Composite SingleTarget
      		{
      			get
      			{
      				return new PrioritySelector(
      					//Movement
      					CombatMovement.CloseDistance(Distance.Ranged),
      		
      					//Interrupts
      					Spell.Cast("Disabling Shot", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
      					Spell.Cast("Electro Dart", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
      					
      					//Rotation
      					Spell.Cast("Rapid Shots", ret => Me.ResourcePercent() > 70),
      					Spell.Cast("Blazing Bolts", ret => Me.HasBuff("Barrage") && Me.Level >= 57),
      					Spell.Cast("Unload", ret => Me.Level < 57),
      					Spell.Cast("Priming Shot", ret => !Me.HasBuff("Power Surge")),
      					Spell.Cast("Heatseeker Missiles", ret => Me.CurrentTarget.HasDebuff("Heat Signature")),
      					Spell.Cast("Rail Shot", ret => Me.BuffCount("Tracer Lock") == 5),
      					Spell.Cast("Electro Net"),
      					Spell.Cast("Tracer Missile", ret => !Me.HasBuff("Barrage")),
      					Spell.Cast("Rapid Shots", ret => Me.BuffCount("Tracer Lock") < 5 && !Me.HasBuff("Barrage"))
      					);
      			}
      		}
      
      		public override Composite AreaOfEffect
      		{
      			get
      			{
      				return new Decorator(ret => Targeting.ShouldAoe,
      					new PrioritySelector(
      						Spell.Buff("Thermal Sensor Override"),
      						Spell.Buff("Power Surge"),
      						Spell.CastOnGround("Death from Above"),
      						Spell.Cast("Fusion Missile", ret => Me.ResourcePercent() <= 10 && Me.HasBuff("Power Surge")),
      						Spell.Cast("Flame Thrower", ret => Me.CurrentTarget.Distance <= 1f),
      						Spell.CastOnGround("Sweeping Blasters", ret => Me.ResourcePercent() <= 60))
      					);
      			}
      		}
      	}
      }
      C
       
      Last edited: Jan 17, 2016
    8. Cydex

      Cydex New Member

      Joined:
      Oct 7, 2014
      Messages:
      24
      Likes Received:
      0
      Trophy Points:
      0
      Did a test with your rotation, and although not testing many rounds on the 1.5M dummy, dps increased vs. the DefaultCombat rotation. Increasing 364 dps (from 3296 -> 3660 in my gear and level 65). However, reading guides on Dulfy it states IO should be slightly above Arsenal but has a more difficult rotation. The test i did was a lot lower than my Arsenal rotation, so i think some more work need to be done :)

      And i felt some lagging while running it, so it may need some work on that part aswell.

      C
       
      Last edited: Jan 17, 2016
    9. Cass

      Cass New Member

      Joined:
      Jan 24, 2014
      Messages:
      98
      Likes Received:
      2
      Trophy Points:
      0
      Thanks for the feedback.
      The lag come from a Lockselector on the rotation to ensure that doesnt skip conditionals. If we change the lockselector from the io rotation it will be even worse dps.
      Indeed arsenal its more reliable to use with bw.
       
    10. Aevitas

      Aevitas Well-Known Member Staff Member Buddy Core Dev

      Joined:
      Mar 2, 2010
      Messages:
      2,307
      Likes Received:
      36
      Trophy Points:
      48
      Feel free to submit a pull request for these on GitHub so we can fix them in the next release, if possible. :)

      https://github.com/BosslandGmbH/BuddyWing.DefaultCombat
       
    11. Cass

      Cass New Member

      Joined:
      Jan 24, 2014
      Messages:
      98
      Likes Received:
      2
      Trophy Points:
      0
    12. Sippinhaterade

      Sippinhaterade Member

      Joined:
      Jul 10, 2011
      Messages:
      387
      Likes Received:
      2
      Trophy Points:
      18
      The new Operative-Concealment seems to be much slower than the earlier version. Granted Im only level 13, it has a lot of downtime.
       
    13. Cryogenesis

      Cryogenesis Moderator Moderator

      Joined:
      Jul 13, 2010
      Messages:
      2,128
      Likes Received:
      13
      Trophy Points:
      38
      Can you check, the routine for the basic rotation if its in?
      I think in the advanced routines you miss to many low level spells.

      What you can do is copy them over in the advanced one and give that a go.
       
    14. Cass

      Cass New Member

      Joined:
      Jan 24, 2014
      Messages:
      98
      Likes Received:
      2
      Trophy Points:
      0
      Concealment at lv 13 dont have enough fillers between shiv and laceration, and backstab have to be in the back of the target what sometimes isnt achievable when soloing stuff on leveling.

      In case you tried the rotation i posted it doesnt have rifle shot so it wont mess with priorityselector. In some cases it will keep casting rifle shot regardless of shiv or laceration being available. And its coded for lv65.

      You can replace the "Veiled Strike" parts for "Shiv" and you can add the same code for overload shot below it replacing for rifle shot and changing one conditional: Me.EnergyPercent >= 87 for Me.EnergyPercent < 87.

      I guess that should help you until lv58 thats when you learn veiled strike ;)
       
      Sippinhaterade likes this.
    15. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      You can also make this part of the base code by using Me.Level <58 and Me.Level >= 58 for each item. You can find examples of this in several other routines that get a key rotational replacement at a higher level.
       
    16. Markeen

      Markeen Member

      Joined:
      Oct 14, 2012
      Messages:
      153
      Likes Received:
      3
      Trophy Points:
      18
      Example would be

      Code:
      				
      Spell.Cast("Magnetic Blast", ret => Me.Level >= 26),
      Spell.Cast("Flame Burst", ret => Me.Level < 26)
      
       

    Share This Page