so dd,anyupdates on the three most pressing issues ? 1)can change abilites without agility bugging out 2)use of gadget 3)medics QC build
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.
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
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
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; }
so do i add this to the medic.cs or is it to be added to some other part of agility?(programming skills=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";
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!
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
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!
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.
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)
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!
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
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! 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!
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".
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)