• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Singular - A community driven All-In-One CC - It Just Plain Works - (Pt. 2)

    Discussion in 'Archives' started by Xanathos, Apr 19, 2011.

    1. Clu

      Clu New Member

      Joined:
      Jun 22, 2011
      Messages:
      54
      Likes Received:
      11
      Trophy Points:
      0
      installed r471 thanks for the info, is there any changelog on the svn? couldn't find it
       
    2. benkoren

      benkoren New Member

      Joined:
      Jan 18, 2011
      Messages:
      356
      Likes Received:
      28
      Trophy Points:
      0
      The devs make a brief notation on every commit. If you're using TortoiseSVN, more info here: Revision Log Dialog
       
    3. benkoren

      benkoren New Member

      Joined:
      Jan 18, 2011
      Messages:
      356
      Likes Received:
      28
      Trophy Points:
      0
      Alrighty, I did some testing on the MM hunter and there are a couple very buggy things going on.

      First is the new trapping logic. Once in a while it works, most of the time it does not. The only time I've seen it work is when there are exactly 3 adds clumped together and no other adds on combat. When it works, Trap Launcher is buffed, the trap is selected, and the correct target area is selected (resulting in the actual cast). When it does not work, the priority selector just hangs so that the hunter never even casts Multi-shot (or any of the other spells in the selector past the trap behavior). My feeling is that it has something to do with the target selection logic in the trap behavior.

      The other issue is Serpent Sting. In the current revision there's an exception that gets thrown pertaining to Chimaera Shot checking the cooldown of SrS - but I have that fixed. The issue I haven't gotten through yet is using the HasMyAura helper. Here's what I'm currently testing with:
      The problem with this is that the HasMyAura method always returns false, so I constantly get the "A more powerful spell is already active" error message as it continuously tries to fire SrS. I'd also like to get this solved for the Frost DK (and a bunch of other dot classes) - keeping our own DoTs up rather than just making sure anyone has that DoT up on the target is extremely important for a lot of dps classes, meaning we can't simply use the Buff() helper. My feeling is that the issue lies in the HasAura method on line 149 of Unit.cs, but I'm not quite sure how to solve it.

      Any ideas? I'd be happy to do the testing and whatnot, I'm just not sure where to go with the code next.

      - Ben
       
      Last edited: Dec 14, 2011
    4. Inrego

      Inrego New Member Buddy Store Developer

      Joined:
      Feb 7, 2010
      Messages:
      2,765
      Likes Received:
      71
      Trophy Points:
      0
      Trying to edit the druid behaviour.
      It's for farming in a spot with groups of mobs which are fighting other mobs.
      When it has killed 1 of the mobs in the group, it's still in combat and then it ignores all the other mobs until it either runs into a mob that it aggroes (which means something is attacking and targeting me), or runs around until it's out of combat before it'll pull a new mob.

      Isn't it possible to make something like if my target dies, and I'm still in combat - just pull a new nearby target?
       
    5. Smarter

      Smarter Member

      Joined:
      Jan 15, 2010
      Messages:
      763
      Likes Received:
      9
      Trophy Points:
      18
      To try to correct this, and add added ability to Swipe, we've implemented the following:
      Code:
              public static Composite CreateClusterTargeting()
              {
                  var clusterTarget = Clusters.GetBestUnitForCluster(Unit.UnfriendlyUnitsNearTarget, ClusterType.Radius, 10f);
      
                  return new PrioritySelector(
                      new Decorator(ret => StyxWoW.Me.GotTarget && StyxWoW.Me.Combat,
                          new Decorator(ret => clusterTarget != null,
                              new Decorator(ret => StyxWoW.Me.CurrentTarget != clusterTarget,
                                  new Action(o => clusterTarget.Target())))));
              }
      
              public static Composite CreateNonPussyCombat()
              {
                  var nearbyNiggas = Unit.NearbyUnfriendlyUnits.Where(o => o.Distance < 15).OrderBy(o => o.Distance);
      
                  return new PrioritySelector(
                      new Decorator(ret => StyxWoW.Me.CurrentTarget == null && StyxWoW.Me.Combat,
                          new Decorator(ret => nearbyNiggas.Count() > 0,
                              new Decorator(ret => nearbyNiggas.FirstOrDefault() != null,
                                  new Action(o => nearbyNiggas.FirstOrDefault().Target())))));
              }
      
       
    6. Clu

      Clu New Member

      Joined:
      Jun 22, 2011
      Messages:
      54
      Likes Received:
      11
      Trophy Points:
      0
      evade bug in action r471

      View attachment 15-12-2011_8.40 2824 Log.txt

      at 8:59 to 9:00 I stopped the bot, clicked again on start and let it fight for around 30 seconds with the bugged mob

      checked the window to see how the bot was doing and found it fighting the bugged mob but I have no idea for how much time he had been fighting there (was testing a profile so it could be from less than a minute to 10 minutes)


      maybe a timeout for evade check didn't tick out?
       
      Last edited: Dec 15, 2011
    7. vitalic

      vitalic Banned

      Joined:
      Jun 21, 2010
      Messages:
      99
      Likes Received:
      0
      Trophy Points:
      0
      im still getting problems with evades as well, for now im just adding blackspots around the mobs
       
    8. vitalic

      vitalic Banned

      Joined:
      Jun 21, 2010
      Messages:
      99
      Likes Received:
      0
      Trophy Points:
      0
      hasaura is broken for me too
       
    9. DarkTemplar24

      DarkTemplar24 Member

      Joined:
      Nov 6, 2011
      Messages:
      95
      Likes Received:
      1
      Trophy Points:
      8
      Hunter (mid 60s) still fails to turn and face the target quite a lot.
       
    10. benkoren

      benkoren New Member

      Joined:
      Jan 18, 2011
      Messages:
      356
      Likes Received:
      28
      Trophy Points:
      0
      You mean HasMyAura, correct? Apoc or Raphus, could you look into this issue when you get the chance? I think issue effects almost all classes and specs, especially now that people are using the bot for LFR where there are other players applying the same debuffs. Let me know if there's anything I can do to help.

      - Ben
       
    11. Apoc

      Apoc Moderator Staff Member Moderator

      Joined:
      Jan 16, 2010
      Messages:
      2,790
      Likes Received:
      94
      Trophy Points:
      48
      HasMyAura should work fine. (You can try passing 1 for the stack count, to ensure its up, and not just an old aura laying in WoW's list)

      Code:
              private static bool HasAura(this WoWUnit unit, string aura, int stacks, WoWUnit creator)        {
                  //Logger.WriteDebug("Looking for aura: " + aura);
                  var auras = unit.GetAllAuras();
                  return (from a in auras
                          where a.Name == aura
                          select a.StackCount >= stacks && (creator == null || a.CreatorGuid == creator.Guid)).FirstOrDefault();
              }
      Code:
      unit.HasMyAura("Serpent Sting", 1)
       
    12. benkoren

      benkoren New Member

      Joined:
      Jan 18, 2011
      Messages:
      356
      Likes Received:
      28
      Trophy Points:
      0
      This is still always returning false for me and resulting in a spam of the debuff-applying ability. I'll attach the full code I'm using to test (see diseases) and attacking a target dummy.

      Code:
      Spell.Cast("Howling Blast", ret => !StyxWoW.Me.CurrentTarget.HasMyAura("Frost Fever", 1)),
       

      Attached Files:

    13. benkoren

      benkoren New Member

      Joined:
      Jan 18, 2011
      Messages:
      356
      Likes Received:
      28
      Trophy Points:
      0
      Hellfire for leveling Destruction Warlocks is a death sentence with the way it's set up right now. Gotta add the instance check:

       
    14. Archon

      Archon New Member

      Joined:
      Dec 4, 2010
      Messages:
      13
      Likes Received:
      0
      Trophy Points:
      0
      Retribution Paladin - Keep casting Holy Light

      Yesterday during a LFR, my DPS was very low and my pally kept casting Holy Light when he was at around 90%. I reinstalled HonorBuddy today (2.0.0.5494), deleted everything from the CustomClasses folder and added Singular and updated it to version 482. I started the questing profile [A - Rep Quest] TB Peninsula Dailies [Kick] and it still does the same thing. I'm using the default settings.

      View attachment 2011-12-15_18_17 5032 Log.txt
       
      Last edited: Dec 15, 2011
    15. nysos

      nysos Member

      Joined:
      Aug 3, 2010
      Messages:
      43
      Likes Received:
      0
      Trophy Points:
      6
      Blood DKs need to stop interrupting the uninterruptable...
       
    16. Obliv

      Obliv New Member

      Joined:
      Oct 18, 2011
      Messages:
      636
      Likes Received:
      6
      Trophy Points:
      0
      How updated is the list in the second/third post showing the current status? I've been working on pretty good rules for Holy Paladins.. but I am looking at the code and imagine by the time I figure it out next year it will need to be updated. :eek:
       
    17. benkoren

      benkoren New Member

      Joined:
      Jan 18, 2011
      Messages:
      356
      Likes Received:
      28
      Trophy Points:
      0
      @Apoc / @Raphus: Here's the most effective way for a Frost DK to use Blood Tap (rather than just on blind cooldown):

       
    18. nysos

      nysos Member

      Joined:
      Aug 3, 2010
      Messages:
      43
      Likes Received:
      0
      Trophy Points:
      6
      >.<" Not to say what I said 2 posts above myself...but it's a serious issue within the new heroics...Blood DKs need to stop interrupting the uninterruptable...r483...

      On the upside...LOVING this CC...haven't come across any other issues...amazing work everyone! :D

      Edit: Warriors are using thunderstomp the second they target an enemy...before they're even in range...><"
       
      Last edited: Dec 16, 2011
    19. Inrego

      Inrego New Member Buddy Store Developer

      Joined:
      Feb 7, 2010
      Messages:
      2,765
      Likes Received:
      71
      Trophy Points:
      0
      Bump
       
    20. Vastico

      Vastico New Member

      Joined:
      Jul 28, 2011
      Messages:
      424
      Likes Received:
      10
      Trophy Points:
      0
      Code:
      using System.Linq;
      using Singular.Dynamics;
      using Singular.Helpers;
      using Singular.Managers;
      using Singular.Settings;
      using Styx;
      using Styx.Combat.CombatRoutine;
      using Styx.Logic.Combat;
      
      using TreeSharp;
      
      namespace Singular.ClassSpecific.Paladin
      {
          public class Retribution
          {
              #region Combat
      
              [Class(WoWClass.Paladin)]
              [Spec(TalentSpec.RetributionPaladin)]
              [Behavior(BehaviorType.Combat)]
              [Behavior(BehaviorType.Heal)]
              [Context(WoWContext.All)]
              public static Composite CreateRetributionPaladinCombat()
              {			
                  return
                      new PrioritySelector(
                          Safers.EnsureTarget(),
                          Holy.CreatePaladinHealBehavior(true),
                          Movement.CreateMoveToLosBehavior(),
                          Movement.CreateFaceTargetBehavior(),
                          Helpers.Common.CreateAutoAttack(true),
      
                          // Interrupt the first unit casting near us. Huzzah!
                          Helpers.Common.CreateInterruptSpellCast(
                              ret => Unit.NearbyUnfriendlyUnits.FirstOrDefault(u => u.IsCasting && u.CanInterruptCurrentSpellCast)),
      
                          // Inquisition, even if AoE. This should give it a 99%+ uptime
                          Spell.Cast(
      						"Inquisition",
      						ret =>
      						!StyxWoW.Me.ActiveAuras.ContainsKey("Inquisition") ||
      						GetAuraTimeLeft(StyxWoW.Me, "Inquisition", true).Seconds <= 3),
      					
                          // Pop Crusader if we're in single-target mode and we have less than 3 holy power and don't have Divine Purpose (3 Holy Power)
                          Spell.Cast(
      						"Crusader Strike", 
      						ret => 
      						(Unit.NearbyUnfriendlyUnits.Count(u => u.Distance <= 8) < 4 || !SpellManager.HasSpell("Divine Storm")) && 
      						StyxWoW.Me.CurrentHolyPower != 3 && !StyxWoW.Me.HasAura("Divine Purpose")),
      						
                          // Pop Divine Storm if we're trying to AoE.
                          Spell.Cast("Divine Storm", ret => Unit.NearbyUnfriendlyUnits.Count(u => u.Distance <= 8) >= 4),
      					
      					Spell.Cast("Templar's Verdict", ret => StyxWoW.Me.CurrentHolyPower == 3 || StyxWoW.Me.HasAura("Divine Purpose")),
                          Spell.Cast("Exorcism", ret => StyxWoW.Me.ActiveAuras.ContainsKey("The Art of War")),
                          Spell.Cast("Hammer of Wrath", ret => StyxWoW.Me.CurrentTarget.HealthPercent <= 20 || StyxWoW.Me.ActiveAuras.ContainsKey("Avenging Wrath")),
                          Spell.Cast("Judgement"),
      					
                          Spell.Cast("Holy Wrath", ret => StyxWoW.Me.ManaPercent > 35),
                          Spell.Cast("Consecration", ret => StyxWoW.Me.ManaPercent > 75),
      
                          // Move to melee is LAST. Period.
                          Movement.CreateMoveToMeleeBehavior(true)
                          );
              }
      
              #endregion
      
              #region Pull
      
              [Class(WoWClass.Paladin)]
              [Spec(TalentSpec.RetributionPaladin)]
              [Behavior(BehaviorType.Pull)]
              [Context(WoWContext.All)]
              public static Composite CreateRetributionPaladinPull()
              {
                  return
                      new PrioritySelector(
                          Movement.CreateMoveToLosBehavior(),
                          Movement.CreateFaceTargetBehavior(),
                          Spell.Cast("Judgement"),
                          Helpers.Common.CreateAutoAttack(true),
                          Movement.CreateMoveToTargetBehavior(true,5f)
                          );
              }
      
              #endregion
      
              #region Combat Buffs
      
              [Class(WoWClass.Paladin)]
              [Spec(TalentSpec.RetributionPaladin)]
              [Behavior(BehaviorType.CombatBuffs)]
              [Context(WoWContext.All)]
              public static Composite CreateRetributionPaladinCombatBuffs()
              {
                  return
                      new PrioritySelector(
      					Spell.BuffSelf(Unit.NearbyUnfriendlyUnits.Count(u => u.Distance <= 8) >= 4 ? "Seal of Righteousness" : "Seal of Truth"),
      					//We don't pop Zealotry if Avenging Wrath is active and vice versa					
                          Spell.BuffSelf("Zealotry", ret => Unit.IsBoss(StyxWoW.Me.CurrentTarget) && !StyxWoW.Me.ActiveAuras.ContainsKey("Avenging Wrath")),
                          Spell.BuffSelf("Avenging Wrath", ret => Unit.IsBoss(StyxWoW.Me.CurrentTarget) && !StyxWoW.Me.ActiveAuras.ContainsKey("Zealotry")),
                          Spell.BuffSelf("Divine Protection", ret => StyxWoW.Me.HealthPercent <= SingularSettings.Instance.Paladin.DivineProtectionHealthRet),
      					Spell.BuffSelf("Divine Plea", ret => StyxWoW.Me.ManaPercent < 90)
                          );
              }
      
              #endregion
          }
      }
      
      Retribution Paladin, using this I got an output of 28k DPS in 378 gear. Indenting in the code tags itself is weird sorry about that.

      Attached file: View attachment Retribution.cs
       
      Last edited: Dec 16, 2011

    Share This Page