• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Pure SWTor

    Discussion in 'Archives' started by Ama, May 9, 2013.

    1. Ama

      Ama New Member

      Joined:
      Jun 6, 2011
      Messages:
      1,171
      Likes Received:
      33
      Trophy Points:
      0
      Small update...

      Added a method to RotationBase.cs to close distance to target. Anyone screwing around with this for non-lazyraidering should use it.

      Here is an example of its use:

      Code:
      return new PrioritySelector(
                          Spell.WaitForCast(),
                          PreCombat,         
                          HandleCoolDowns,
                          HandleAOE,
                          HandleSingleTarget,
                          CloseDistance(Distance.Melee)
                      );
      
       
      Last edited: May 16, 2013
    2. Ama

      Ama New Member

      Joined:
      Jun 6, 2011
      Messages:
      1,171
      Likes Received:
      33
      Trophy Points:
      0
      Update Redux...

      -removed hotkeys for movement,targeting, repop.
      -F12 hotkey now enables/disables all movement/targeting/repop
      -Added LazyRaider check to CloseDistance (only works if movement is enabled)

      Hoping Enable Repop is working. Its should, in theory.
       
    3. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      I was never able to get three functions to work properly:

      1. Buff time left. I tried using milliseconds (2500 for 2.5 seconds) and seconds (2.5). Neither worked properly. When it was in ms, the not just casted the same 18 second buff nonstop. When it was in seconds, the not let the buff expire. This is needed for my Sawbones routine, as I can save time and energy by keeping 2 stacks of Slow-release Medpac up instead of constantly having to reapply both stacks.

      2. Cleanse. I know you were working on this, but I couldn't get it right. It would just spam-cast the cleanse even if my target had no debuffs.

      3. I still can't get the aoe call to trigger reliably. I'll have 3 mobs on me in melee range and the not will just use the single-target rotation. Once he's killed 2 of them, he'll suddenly use aoe on the last mob. It looks silly in groups, especially with a class with good aoe like a Trooper or Marauder.
       
    4. Ama

      Ama New Member

      Joined:
      Jun 6, 2011
      Messages:
      1,171
      Likes Received:
      33
      Trophy Points:
      0
      1. Have you tried returning the buff time left and comparing it with what is in game?

      2. I did an update for this a couple days ago... Dispels are done by name and should be added to dispel.cs.

      3. I havent specifically tested for this, but it shouldnt... what class?
       
    5. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      I used
      Tank.BuffTimeLeft("Slow-release Medpac") < 2500
      and
      Tank.BuffTimeLeft("Slow-release Medpac") < 2.5

      Both worked like I said above. I don't know how to do what you're talking about. I'm just a stupid copy/paste monkey :/

      In regards to 3.: Pretty much every class. Sometimes it'll work great for a few minutes, and I think "oh, something got fixed." But then it goes back to aoe'ing 2 dead mobs and one living one. No idea. Classes I use most: Guardian/Defense, Commando/Gunnery (good aoe potential here), Marauder/Annihilation, Sniper/Marksman.
       
    6. Ama

      Ama New Member

      Joined:
      Jun 6, 2011
      Messages:
      1,171
      Likes Received:
      33
      Trophy Points:
      0

      try now.. just changed a mob.IsDead to !mob.IsDead... so it was counting only dead mobs before :p

      for the debuffs, I just changed b.Name == buffName to b.Name.Contains(buffName)... this means that if there is some extra shit after the name like (force) it will still pick it up.

      For the tank... There is no way for use to set the tank at the moment. It pretty much always makes it Me. I am going to make a GUI sometime soon so this crap can be set to work properly. Need to fix this movement and repop me first.
       
    7. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      The Tank call seems to work fine for me in other respects. I have several calls that are like:

      Spell.Cast("Slow-release Medpac"), on => Tank, 100, ret => Tank != null && Tank.BuffCount("Slow-release Medpac") < 2)

      And it works just fine (even uses my companion when he's not my focus target). What I want to do is add an OR (||) call after the BuffCount call to also cast if the buff is about to expire in 2.5 seconds.
       
    8. Ama

      Ama New Member

      Joined:
      Jun 6, 2011
      Messages:
      1,171
      Likes Received:
      33
      Trophy Points:
      0
      Like I said before... do a statement to print out the buff time to see what is happening. Its how you debug shit!!

      Add this to your routine
      Code:
      using Buddy.Common;
      
      new Action(delegate { 
                                      if(Tank.HasBuff("buff"))
                                          Logging.Write(Tank.BuffTimeLeft("buff").ToString()); 
                                  }),
      
       
    9. lonestar

      lonestar New Member

      Joined:
      May 15, 2013
      Messages:
      23
      Likes Received:
      0
      Trophy Points:
      0
      Here is a my rotation for 50+
      Assassin Deception:

      Spell.Cast("Jolt", ret => Me.CurrentTarget.IsCasting),
      Spell.Cast("Low Slash", ret => Me.CurrentTarget.IsCasting),
      Spell.Cast("Electrocute", ret => Me.CurrentTarget.IsCasting),
      Spell.Cast("Maul", ret => Me.HasBuff("Duplicity")), // maul can only be used behind target - can't code this?
      Spell.Cast("Voltaic Slash", ret => Me.ForcePercent >= 25), // moved up on rotation, builds voltage / induction stacks
      Spell.Cast("Assassinate", ret => Me.CurrentTarget.HealthPercent <= 30),
      Spell.Cast("Shock", ret => Me.BuffCount("Induction") == 2),
      Spell.Cast("Discharge", ret => Me.BuffCount("Static Charge") >= 3), // stacks max at 5, test at 3 first to see results
      Spell.Cast("Crushing Darkness"), //testing position in rotation
      Spell.Cast("Saber Strike")


      I will work on balancing this for lower level, just need to test it, may need to add back some lower abilities.
       
    10. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      The Shadow/Infiltration routine I wrote works fine, you could just copy that with some name changes. I don't think Static Charge stacks past 3, does it? Also, be careful putting Voltaic Slash too high in the routine (that's the Clairvoyant Strike analogue, right?). The routine starts at the top and works its way down, so it'll just end up spamming Voltaic Slash until you run out of Force. Putting Discharge and Shock above it means that it will consume those procs quicker. Otherwise, when it's spamming VS, you'll end up wasting procs.
       
    11. lonestar

      lonestar New Member

      Joined:
      May 15, 2013
      Messages:
      23
      Likes Received:
      0
      Trophy Points:
      0
      Thanks for the feedback, its much appreciated. The static charge stacks to 5, so I figured I would try at 3 and test it out. So far that seems to work okay, but could be adjusted. I hear you on the voltaic slash, I moved it lower in the rotation to begin with and it never casted so I moved it higher. I haven't had a chance to look at your shadow rotation, I will try to compare and see what makes most sense. You are right we dont want to spam voltaic, but at the same time, the use of voltaic, saber strike, and maul, build the induction and static charge stacks necessary for max damage from shock and discharge. Its all a balancing game, fun though. Does anyone else use a damage meter of some kind to test with? I use MOXparser, but I am fairly new to MMO's and don't have much experience with anything else.
       
    12. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Here's the single target version of my Shadow routine:

      Spell.Cast("Mind Snap", ret => Me.CurrentTarget.IsCasting),
      Spell.Cast("Shadow Strike", ret => Me.HasBuff("Stealth") || Me.HasBuff("Find Weakness")),
      Spell.Cast("Force Breach", ret => Me.BuffCount("Breaching Shadows") == 3),
      Spell.Cast("Spinning Strike", ret => Me.CurrentTarget.HealthPercent <= 30),
      Spell.Cast("Project", ret => Me.BuffCount("Circling Shadows") == 2),
      Spell.Cast("Clairvoyant Strike", ret => Me.ForcePercent >= 25),
      Spell.Cast("Saber Strike")
      );

      I use TorTools combat parser, and I pull 1400-1700 at level 51 and Columi/Rakata gear with this routine.
       
    13. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Spell.WaitForCast() doesn't appear to be recognizing channels. I noticed this today while playing my Gunnery Commando (he has lots of channeled spells-- Full Auto, Mortar Volley, Plasma Cannon).

      It's not consistent, but the routine seems to always wait for spells to cast. It's just that for channels, it frequently clips. This is very bad when the routine clips a spell like Mortar Volley, which is the top aoe dps ability, for something like Frag Grenade, which is a weak aoe ability.

      I'm having a hard time reproducing this, as it's not consistent. Just wondering if anyone else is seeing this behavior for channeled spells.
       
    14. Ama

      Ama New Member

      Joined:
      Jun 6, 2011
      Messages:
      1,171
      Likes Received:
      33
      Trophy Points:
      0
      I have noticed some channeled abilities getting clipped as well. I assumed they were getting interrupted by mobs...

      I looked at the method though, there isn't a method for "IsChanneling" so casting and channeling are the same thing to BW.
       
      Last edited: May 20, 2013
    15. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Yeah, the first thing I looked for was a IsChanneling call :/

      The clipping isn't noticeable until I'm playing my Trooper. Most classes have 1-2 channeled spells, but the Gunnery Trooper has a bunch, including his highest-damage abilities. The bot definitely doesn't clip casting spells, only channels.

      On a side note: it looks like you just copied the Commando/Assault Specialist routine from Vanguard. There are several ability calls that don't exist for Commandos (Riot Stick, some aoe ability I've never seen). Is it okay if I fix those issues?
       
    16. aquintus

      aquintus Member

      Joined:
      Oct 3, 2010
      Messages:
      264
      Likes Received:
      7
      Trophy Points:
      18
      of cause it is ^^ we're all trying to work together here but sadly we don't have all classes to test and write the ccs for that.
       
    17. Ama

      Ama New Member

      Joined:
      Jun 6, 2011
      Messages:
      1,171
      Likes Received:
      33
      Trophy Points:
      0
      Whoever wrote the Sorcerer lightning spec did a good job... I downed a raid boss and no one told me I suck. :)
       
    18. Manolitox

      Manolitox New Member

      Joined:
      Jan 1, 2013
      Messages:
      119
      Likes Received:
      0
      Trophy Points:
      0
      which profile do we run? lazyraider or combatbot.xml?
       
    19. alltrueist

      alltrueist Active Member

      Joined:
      Dec 10, 2012
      Messages:
      1,424
      Likes Received:
      16
      Trophy Points:
      38
      Combatbot.xml is made specifically as a blank profile to run while you're at the keyboard.
       
    20. aquintus

      aquintus Member

      Joined:
      Oct 3, 2010
      Messages:
      264
      Likes Received:
      7
      Trophy Points:
      18
      both files are basically empty... one is named combatbot... second is named lazyraider... both include pretty much the same: Nothing but the Profiles Name.
       

    Share This Page