• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • [WIP] Singular - A community driven All-In-One CC - It Just Plain Works

    Discussion in 'Archives' started by Apoc, Feb 7, 2011.

    Thread Status:
    Not open for further replies.
    1. ShinobiAoshi

      ShinobiAoshi Member

      Joined:
      Jul 21, 2010
      Messages:
      143
      Likes Received:
      2
      Trophy Points:
      18
      I am having issues with the Warlock Demonology portion of the CC not functioning. I updated to the latest revision (194 if I'm not mistaken) and now my warlock auto attacks and sends the pet to attack, but nothing after that.
      Also, I don't see anything in the logs regarding this even though I turned on debug logging. However if needed I will post them.
       
    2. mopysworld

      mopysworld New Member

      Joined:
      Jan 15, 2010
      Messages:
      158
      Likes Received:
      2
      Trophy Points:
      0
      my distract code snippet...

      This works for me... I'm in the process of moving my rogue legacy CC crap over to singular framework. Now if I can get the damn circle strafing code to port over... this action is throwing me for a loop.

      Code:
                          // Distract Mobs...
                          new Decorator(
                              ret => SpellManager.CanCast("Distract") && Me.CurrentTarget.DistanceSqr < 25 * 25,
                              new Action(
                                  ret =>
                                  {
                                      WoWPoint dropDistract = WoWMathHelper.CalculatePointFrom(Me.Location, Me.CurrentTarget.Location, -1);
                                      WoWPoint attackDistract = WoWMathHelper.CalculatePointFrom(Me.Location, Me.CurrentTarget.Location, +5);
                                      SpellManager.Cast("Distract");
                                      LegacySpellManager.ClickRemoteLocation(dropDistract);
                                   }
                                  )),
      
       
    3. mopysworld

      mopysworld New Member

      Joined:
      Jan 15, 2010
      Messages:
      158
      Likes Received:
      2
      Trophy Points:
      0
      Don't quote me on this... but looking through the code apparently some of the pet code is being changed in the next HB build so it looks like apoc will probably update the crap once that is implemented. I haven't tried my lock since like 4+ revision ago.
       
    4. Mortal

      Mortal New Member

      Joined:
      Jan 26, 2011
      Messages:
      34
      Likes Received:
      0
      Trophy Points:
      0
      You are pretty close, when a condition is met it enters the priority selector and will use the spells in order in which they are coded and then there is "break" after the first thing is used and then it goes back to the beginning of the composite. Therefore if you use an ability that has no CD first in the priority selector, singular will keep spaming the same spell over and over until the Priority selector's conditions are false. Thats why you generally put things with CD first (so it will cycle through more spells), or you put conditions on the earlier spells so that it doesn't keep using the same spell every time.

      Note: I would advise not using a very general priority selector, otherwise it will always be true and code below it will never be executed.

      Hopefully that helped you out a bit
       
      Last edited: Mar 20, 2011
    5. strix

      strix New Member

      Joined:
      Feb 13, 2010
      Messages:
      442
      Likes Received:
      18
      Trophy Points:
      0
      In easier words it will exit current "pulse" after commiting first succesful action, unless it's specifically told to continue anyway.

      "Decorator" is somehow similar to "IF" and interactions with game work like they were always finished with "return" from current pulse.
       
      Last edited: Mar 20, 2011
    6. pmellyn

      pmellyn New Member

      Joined:
      May 10, 2010
      Messages:
      89
      Likes Received:
      0
      Trophy Points:
      0
      Been leveling a feral druid using the CC, few things I have noticed.

      It still likes to Prowl then cast Faerie Fire instead of pouncing to come out of prowl.

      It doesn't seem to use any healing spells during combat if it gets low, like maybe around 25% it could cast a regrowth/rejuv on itself and keep on going.

      Occasionally it tried to use Shred on targets in front of it even though it has to be behind for this spell. It was very seldom, and it seemed like it happened only on large mobs, like the rhinos in Scholazar Basin.

      All I have noticed for now, working great none the less!

      Edit: Oh yeah, maybe have it cast Mark of the Wild on itself and keep that up also.
       
      Last edited: Mar 21, 2011
    7. moachi

      moachi New Member

      Joined:
      Mar 18, 2011
      Messages:
      35
      Likes Received:
      0
      Trophy Points:
      0
      Btw, about movement, I use it like that, this prevents from blocking other actions if to put movement code at top of combat's priority selector. It moves and continues hit target which is fleeing.. at least I feel it works better:cool:
      Code:
      protected Composite CreateMoveToAndFace(float maxRange, float coneDegrees, UnitSelectionDelegate unit, bool noMovement)
              {
                  return new Decorator(
                      ret => unit(ret) != null,
                      new PrioritySelector(
                          new Decorator(
                              ret => !unit(ret).InLineOfSightOCD || (!noMovement && unit(ret).Distance > maxRange),
                              new Action(ret => 
                                  {
                                      Navigator.MoveTo(unit(ret).Location);
                                      return RunStatus.Failure;
                                  })),
                          new Decorator(
                              ret => Me.IsMoving && unit(ret).Distance <= maxRange,
                              new Action(ret => 
                                  {
                                      Navigator.PlayerMover.MoveStop();
                                      return RunStatus.Failure;
                                  })),
                          new Decorator(
                              ret => Me.CurrentTarget != null && Me.CurrentTarget.IsAlive && !Me.IsSafelyFacing(Me.CurrentTarget, coneDegrees),
                              new Action(ret => 
                                  {
                                      Me.CurrentTarget.Face();
                                      return RunStatus.Failure;
                                  }))
                          ));
              }
      P.S. I didn't merge yet latest version changes into my branch for this file, but you should get the idea..
       
    8. kmolleson

      kmolleson Member

      Joined:
      Feb 22, 2011
      Messages:
      99
      Likes Received:
      0
      Trophy Points:
      6
      I have a requested fix for the almost perfect fury warrior cc. I remember reading not too far back that charge was removed from fury warriors because stance switching was a bit slow... my fury warrior still walks around in battle stance when he has no rage though. Would it be possible to make the appropriate changes to leave him in berserker stance if he is not going to use anything in battle stance? Thanks!
       
    9. moachi

      moachi New Member

      Joined:
      Mar 18, 2011
      Messages:
      35
      Likes Received:
      0
      Trophy Points:
      0
      Oke, this is my retri pala for PvP.. most of the time on wsg, gilneas I'm almost top 1 dps)) if there is fight in a middle..
      This one switches targets when current target is kitting(if there are available near), so it no longer runs after some target while there are somebody in melee .. etc.. + more/less correct rotation.... even more correct than I use ( though I have 2k+ arena lol, but bot fights better than me)
      Bot assumes that at trinket1 is PvP trinket and in trinket2 some usable trinket that increases strength or something(used together with avenging wrath for max damage)
      IN singular.routine.movement.patch - just above stuff, movement shouldn't preventing going futher in priorityselector.
       

      Attached Files:

    10. Gully

      Gully New Member

      Joined:
      Jan 27, 2011
      Messages:
      154
      Likes Received:
      3
      Trophy Points:
      0
      where does the movement routine go?

      Been trying to work this out for a while because the movement sucks atm :(
       
      Last edited: Mar 21, 2011
    11. moachi

      moachi New Member

      Joined:
      Mar 18, 2011
      Messages:
      35
      Likes Received:
      0
      Trophy Points:
      0
      Well, that's patch, simply cannot attach .patch files, so added .cs.. In general look at this post(CLICK ME) - it shows how actions must return failure for mopvement. Adjust yours CreateMoveToAndFace in SingularRoutine.Movement.cs to look simlar (return RunStatus.Failure from move actions)
       
    12. Gully

      Gully New Member

      Joined:
      Jan 27, 2011
      Messages:
      154
      Likes Received:
      3
      Trophy Points:
      0
      :D i tried doing that but it wont compile any chance you could upload your version since im not very good at coding and dont really know what im doing

      Ive copied and pasted the code you posted into my movement cs replacingthe previous one and it compiled but is this one the same as the one you posted in patch?

      Edit for some reason your pvp cc isnt activating selas is there a fix for this?
       
      Last edited: Mar 21, 2011
    13. moachi

      moachi New Member

      Joined:
      Mar 18, 2011
      Messages:
      35
      Likes Received:
      0
      Trophy Points:
      0
      yep, more or less.... but it should work mainly the same. The posted code is based on some previous revision, but there were no sufficient changes to worry about, so it should work. And if you use some different class, make sure that CreateMoveToAndFace invoked at beginning, right after target check.
       
    14. Gully

      Gully New Member

      Joined:
      Jan 27, 2011
      Messages:
      154
      Likes Received:
      3
      Trophy Points:
      0
      Code:
              protected Composite CreateMoveToAndFace(float maxRange, float coneDegrees, UnitSelectionDelegate unit, bool noMovement)
              {
                              new Action(ret => Navigator.MoveTo(unit(ret).Location))),
      
                              new Action(ret => 
                                  {
                                       Navigator.MoveTo(unit(ret).Location);
                                       return RunStatus.Failure;
                                   })),
                               new Action(ret => Navigator.PlayerMover.MoveStop())),
      
                               new Action(ret => 
                                   {
                                       Navigator.PlayerMover.MoveStop();
                                       return RunStatus.Failure;
                                   })),
      
                               new Action(ret => Me.CurrentTarget.Face()))
      
                               new Action(ret => 
                                   {
                                       Me.CurrentTarget.Face();
                                       return RunStatus.Failure;
                                   }))
                          ));
              }
      IS that correct?

      Wont compile :(
       
      Last edited: Mar 21, 2011
    15. Mupp

      Mupp New Member

      Joined:
      May 3, 2010
      Messages:
      613
      Likes Received:
      5
      Trophy Points:
      0
      Seems like there is something missing in that code, its less text in that one.

      Code:
      protected Composite CreateMoveToAndFace(float maxRange, float coneDegrees, UnitSelectionDelegate unit, bool noMovement)
              {
                  return new Decorator(
                      ret => unit(ret) != null,
                      new PrioritySelector(
                          new Decorator(
                              ret => !unit(ret).InLineOfSightOCD || (!noMovement && unit(ret).Distance > maxRange),
                              new Action(ret => 
                                  {
                                      Navigator.MoveTo(unit(ret).Location);
                                      return RunStatus.Failure;
                                  })),
                          new Decorator(
                              ret => Me.IsMoving && unit(ret).Distance <= maxRange,
                              new Action(ret => 
                                  {
                                      Navigator.PlayerMover.MoveStop();
                                      return RunStatus.Failure;
                                  })),
                          new Decorator(
                              ret => Me.CurrentTarget != null && Me.CurrentTarget.IsAlive && !Me.IsSafelyFacing(Me.CurrentTarget, coneDegrees),
                              new Action(ret => 
                                  {
                                      Me.CurrentTarget.Face();
                                      return RunStatus.Failure;
                                  }))
                          ));
              }
      I think that's what he posted. The .cs seems to be the added text only.
       
      Last edited: Mar 21, 2011
    16. lunatiq

      lunatiq New Member

      Joined:
      Jan 28, 2011
      Messages:
      215
      Likes Received:
      0
      Trophy Points:
      0
    17. Mupp

      Mupp New Member

      Joined:
      May 3, 2010
      Messages:
      613
      Likes Received:
      5
      Trophy Points:
      0
      Last edited: Mar 21, 2011
    18. lunatiq

      lunatiq New Member

      Joined:
      Jan 28, 2011
      Messages:
      215
      Likes Received:
      0
      Trophy Points:
      0
      yes, that is where my problem arose from. Using the one that is bundled with HB 4317 wasn't giving me problems. So I'm going back to revision 162, I think that's what it is.

      I was using 197.... that one from his trunk, yes.


      ### EDITED ###

      I'm a Demonology Lock
       
      Last edited: Mar 21, 2011
    19. Nuok

      Nuok Community Developer

      Joined:
      Jan 15, 2010
      Messages:
      975
      Likes Received:
      28
      Trophy Points:
      28
      Have applied the changes, update through svn
       
    20. Gully

      Gully New Member

      Joined:
      Jan 27, 2011
      Messages:
      154
      Likes Received:
      3
      Trophy Points:
      0
      Code:
      protected Composite CreateMoveToAndFace(float maxRange, float coneDegrees, UnitSelectionDelegate unit, bool noMovement)
              {
                  return new Decorator(
                      ret => unit(ret) != null,
                      new PrioritySelector(
                          new Decorator(
                              ret => !unit(ret).InLineOfSightOCD || (!noMovement && unit(ret).Distance > maxRange),
                              new Action(ret => 
                                  {
                                      Navigator.MoveTo(unit(ret).Location);
                                      return RunStatus.Failure;
                                  })),
                          new Decorator(
                              ret => Me.IsMoving && unit(ret).Distance <= maxRange,
                          new Decorator(
                              ret => Me.CurrentTarget != null && Me.CurrentTarget.IsAlive && !Me.IsSafelyFacing(Me.CurrentTarget, coneDegrees),
                              new Action(ret => 
                                  {
                                      Me.CurrentTarget.Face();
                                      return RunStatus.Failure;
                                  }))
                          ));
              }
      Im currently using this in pvp and its doing the job perfectly its running around the players
       
    Thread Status:
    Not open for further replies.

    Share This Page