• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Agility

    Discussion in 'Botbases' started by Deathdisguise, May 19, 2015.

    1. xergz

      xergz Member

      Joined:
      Apr 16, 2010
      Messages:
      309
      Likes Received:
      1
      Trophy Points:
      18
      so dd,anyupdates on the three most pressing issues ?:p
      1)can change abilites without agility bugging out
      2)use of gadget
      3)medics QC build
       
    2. Palenie

      Palenie New Member

      Joined:
      Dec 7, 2014
      Messages:
      42
      Likes Received:
      0
      Trophy Points:
      0
      Cool stuff. Not sure if it's because of your last update, but I've been able to modify the combat routine a little bit. So I started working on the Warrior Tank Routine.
      It's nothing special, as it only supports this LAS. I've kept Atomic Surge and Plasma Blast out of it since they are taunt and I think you always should taunt manually.

      But yeah it looks like you can just add about any spell into the routine now without any issue.
       

      Attached Files:

    3. xergz

      xergz Member

      Joined:
      Apr 16, 2010
      Messages:
      309
      Likes Received:
      1
      Trophy Points:
      18
      that looks awesome,and with taunt,you can do what i do with movement abilities..bind them to "slow attack".that way you always have access to a taunt instead of looking at cd's
       
    4. xergz

      xergz Member

      Joined:
      Apr 16, 2010
      Messages:
      309
      Likes Received:
      1
      Trophy Points:
      18
      DD,
      i was thinking bout it,i've started working on a medic heal routine too.
      can we get the option to load a specific cs when we start wildbuddy?that way i can take tank,dps and heal builds in the same directory and the option to choose it before starting
       
    5. xergz

      xergz Member

      Joined:
      Apr 16, 2010
      Messages:
      309
      Likes Received:
      1
      Trophy Points:
      18
      think our fearless leader is MIA!
      come back DD!
       
    6. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      No sir! Unexpected travel is all! Home sweet home again! ;)
       
    7. Lukov

      Lukov New Member

      Joined:
      Apr 3, 2015
      Messages:
      63
      Likes Received:
      2
      Trophy Points:
      0
      I have been gone for a bit, however in terms of Quantum Cascade, I made a function a while back that checks if you're casting a ability. So instead of spamming Quantum Cascade, the bot will instead use it once, then use other abilities.

      Code:
      public bool CastingSpell(string spellName)
              {
                  SpellManager.SpellInformation spell = SpellManager.GetSpell(spellName);
                  return Me.CurrentCast != null && spell != null && Me.CurrentCast.BaseSpellId == spell.Ability.BaseSpellId;
              }
       
      xergz likes this.
    8. xergz

      xergz Member

      Joined:
      Apr 16, 2010
      Messages:
      309
      Likes Received:
      1
      Trophy Points:
      18
      so do i add this to the medic.cs or is it to be added to some other part of agility?(programming skills=0 :( )
       
    9. Lukov

      Lukov New Member

      Joined:
      Apr 3, 2015
      Messages:
      63
      Likes Received:
      2
      Trophy Points:
      0
      Replace SpellController.cs with this http://pastebin.com/kr2gkhxB


      Then replace Quantum Cascade in Medic.cs with
      Code:
                  if (!SpellController.CastingSpell("Quantum Cascade") && SpellController.CanCast("Quantum Cascade"))
                      return "Quantum Cascade";
       
    10. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      Had a lot of catch up to do, but looking into the QC issue now, it's not as easy a fix as checking to see if it's casting or not!

      Agility attempts to take advantage of the skill queue system to mitigate any DPS pauses from client latency, which is why it feels so spammy and active in comparison to actual combat routines.

      When your skill queue duration drops below X (the value in your combat settings), it will begin actively spamming the next ability. This is likely the reason why QC is getting partially stuck instead of moving on quickly.

      To boost QC performance for now, consider dropping your queue time to a lower value (but not 0!), I'll actively work on improving the skill queue performance, and QC, since it's a bit of an oddity for skills in general. :)


      Already being worked on! Allowing for key bind changes as well as selecting which routines to use, as well as community submitted routines!



      MUCH appreciated! I don't know lick about tanking! Hahaha. I'll run through this shortly and see how it behaves performance-wise (the larger the routines get, the slower they get!) and upload it shortly! :)
       
      Last edited: Aug 20, 2015
    11. xergz

      xergz Member

      Joined:
      Apr 16, 2010
      Messages:
      309
      Likes Received:
      1
      Trophy Points:
      18
      here,i reduced bloat in the tank profile.
      also i put taunts on #2,def grid on #4.

      DD,is there a way we can rename(not just rebind) the keys?i dont think anyone uses slowattack() or Heal(),if i can rename them to lets say Taunt(), Survival Mechanics() and Movement abilities()..its gonna be groovy
       

      Attached Files:

      Last edited: Aug 21, 2015
    12. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      As mentioned, currently working on this. You can change the code of course, but it'll have to be rechanged every update, which is no fun for anyone!
       
    13. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      If anyone is interested in preparing their own AgilityRoutine files ahead of time, here's an example to get you started (NOTE : template may change slightly):

      Warrior_AutoAttack.cs:
      Code:
      using Agility;
      using Buddy.Wildstar.Game;
      
      namespace Agility.Routines
      {
          class [U]Warrior_AutoAttack[/U] : IAgilityRoutine
          {
              public string Name { get { return "[U]Auto-Attack[/U]"; } }
              public string Version { get { return "[U]0.1[/U]"; } }
              public string Author { get { return "[U]Deathdisguise[/U]"; } }
      
              public string Routine()
              {
                  [U]if (SpellController.CanCast("Relentless Strikes"))[/U]
                      [U]return "Relentless Strikes";[/U]
      
                  [U]if (SpellController.CanCast("Menacing Strike"))[/U]
                      [U]return "Menacing Strike";[/U]
      
                  return null;
              }
          }
      }
      
      The underlined sections are where you'll want to edit your routine.
       
    14. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      Because I love you all so much, I've decided to branch and push an update of the new routine system. It's not completely touched up, but it 'should' be functional?

      What's still coming:
      - Customizing hotkeys through the settings.
      - Filters for the routine drop downs
      - Fixes for switching characters, switching specs, and other fun things that tend to break stuff.
      - Implemented routines of the recently submitted routines above (I'll try to keep track of them as best as I can)
       
    15. xergz

      xergz Member

      Joined:
      Apr 16, 2010
      Messages:
      309
      Likes Received:
      1
      Trophy Points:
      18
      DD,a small explanation of the new system is in order?check you pm's plz
       
    16. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      Oh I see what you did! Using Palenie's tank routine as an example (since it was included in your PM)

      Code:
      using Buddy.Wildstar.Game;
      using Buddy.Wildstar.Game.Actors;
      
      namespace Agility.Routines
      {
          class Warrior_Tank : IAgilityRoutine
          {
              public string Name { get { return "Tank"; } }
              public string Version { get { return "1.3"; } }
              public string Author { get { return "Palenie"; } }
      
              private Player Me { get { return GameManager.LocalPlayer; } }
      
              public string Routine()
              {
                  if (SpellController.CanCast("Power Link") && Me.InnateResource >= 350 && SpellController.BuffCount("Power Link") == 0)
                      return "Power Link";
      
                  if (SpellController.CanCast("Breaching Strikes") && Me.HasBuff("Breaching Strikes"))
                      return "Breaching Strikes";
      
                  if (SpellController.CanCast("Atomic Spear") && Me.HasBuff("Atomic Spear"))
                      return "Atomic Spear";
      
                  if (SpellController.CanCast("Expulsion") && Me.HasDebuff) 
                      return "Expulsion";
      
                  if (SpellController.CanCast("Bolstering Strike") && Me.ShieldPercent <= 85)
                      return "Bolstering Strike";
      			
      	    if (SpellController.CanCast("Jolt"))
      		return "Jolt";
      			
                  if (SpellController.CanCast("Shield Burst"))
                      return "Shield Burst";
      
                  if (SpellController.CanCast("Menacing Strike"))
                      return "Menacing Strike";
      
                  return null;
              }
          }
      }
      
      Each routine file is it's own routine now. You can assign this to one of eight hotkeys in the settings menu via the drop down boxes. Hotkey customization itself is coming along shortly!

      I am planning to add the above to the repo early tomorrow, as alcohol became a factor tonight, and I may have been distracted! ;)
       
    17. Palenie

      Palenie New Member

      Joined:
      Dec 7, 2014
      Messages:
      42
      Likes Received:
      0
      Trophy Points:
      0

      Please dont use that one. Bolstering Strike and Shield Burst bug out if you dont have any kinetic energy. Use this code:
      Code:
      using Buddy.Wildstar.Game;
      using Buddy.Wildstar.Game.Actors;
      
      namespace Agility.Routines
      {
          class Warrior_Tank : IAgilityRoutine
          {
              public string Name { get { return "Tank"; } }
              public string Version { get { return "1.3"; } }
              public string Author { get { return "Palenie"; } }
      
              private Player Me { get { return GameManager.LocalPlayer; } }
      
              public string Routine()
              {
                  if (SpellController.CanCast("Power Link") && Me.InnateResource >= 350 && SpellController.BuffCount("Power Link") == 0)
                      return "Power Link";
      
                  if (SpellController.CanCast("Breaching Strikes") && Me.HasBuff("Breaching Strikes"))
                      return "Breaching Strikes";
      
                  if (SpellController.CanCast("Atomic Spear") && Me.HasBuff("Atomic Spear"))
                      return "Atomic Spear";
      
                  if (SpellController.CanCast("Expulsion")) 
                      return "Expulsion";
      
                  if (SpellController.CanCast("Bolstering Strike") && Me.InnateResource >= 500)
                      return "Bolstering Strike";
      			
      	    if (SpellController.CanCast("Jolt"))
      		return "Jolt";
      			
                  if (SpellController.CanCast("Shield Burst") && Me.InnateResource >= 500)
                      return "Shield Burst";
      
                  if (SpellController.CanCast("Menacing Strike"))
                      return "Menacing Strike";
      			
      	    if (SpellController.CanCast("Defense Grid"))
      		return "Defense Grid";
      
                  return null;
              }
          }
      }
      
      Take Defense grid out if you dont want it to be spammed on cooldown.
      I also edited the 'AutoAttack' routine so you can use it for taunts.
      Code:
      using Buddy.Wildstar.Game;
      using Buddy.Wildstar.Game.Actors;
      
      namespace Agility.Routines
      {
          class Warrior_AutoAttack : IAgilityRoutine
          {
              public string Name { get { return "Auto-Attack"; } }
              public string Version { get { return "0.1"; } }
              public string Author { get { return "Deathdisguise"; } }
      
              private Player Me { get { return GameManager.LocalPlayer; } }
      
              public string Routine()
              {
                  if (SpellController.CanCast("Relentless Strikes"))
                      return "Relentless Strikes";
      
                  if (SpellController.CanCast("Menacing Strike"))
                      return "Menacing Strike";
      			
      			if (SpellController.CanCast ("Plasma Blast"))
      				return "Plasma Blast";
      			
      			if (SpellController.CanCast ("Atomic Surge"))
      				return "Atomic Surge";
      
                  return null;
              }
          }
      }
      

      Now we just have to get the bot so that we do not have to restart it every time we change LAS and it is a really solid bot. Good work DD
       
    18. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      Will be updated and pushed shortly! :)

      Remember, there's no longer a need to revise current routines, you can simply make them your own! Either make an AutoAttackTaunt one, or a whole new Taunt one! There's up to 8 hotkeys now, so plenty of potential for customization! :D

      Code:
      using Buddy.Wildstar.Game;
      using Buddy.Wildstar.Game.Actors;
      
      namespace Agility.Routines
      {
          class Warrior_Taunt : IAgilityRoutine
          {
              public string Name { get { return "Taunt"; } }
              public string Version { get { return "0.1"; } }
              public string Author { get { return "Palenie"; } }
      
              private Player Me { get { return GameManager.LocalPlayer; } }
      
              public string Routine()
              {		
      	    if (SpellController.CanCast ("Plasma Blast"))
      		return "Plasma Blast";
      			
      	    if (SpellController.CanCast ("Atomic Surge"))
      		return "Atomic Surge";
      
      	    if (SpellController.CanCast("Menacing Strike"))
      		return "Menacing Strike";
      
      	    if (SpellController.CanCast("Relentless Strikes"))
      		return "Relentless Strikes";
      
                  return null;
              }
          }
      }
      
      Also, always remember that it's effectively a priority list, so order is important!

      Yeap! That's on the list, after I touch up the GUI aspects of the routine system, and finish adding custom binding of hotkeys! :D
       
    19. xergz

      xergz Member

      Joined:
      Apr 16, 2010
      Messages:
      309
      Likes Received:
      1
      Trophy Points:
      18
      DD,
      is there a way we can use the charges on a spell instead of SpellController.CanCast?
      because Collider(dps medic spell), is castable even when it doesnt have charges,it just spams the message "Not enough Charges".
       
    20. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      It's already on the list! I'm still pretty behind in general! (Vancouver also got hit by a storm yesterday, so you know, all is going smooth! Haha)
       

    Share This Page