What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

Spec checking?

Stree

New Member
Joined
Jun 9, 2011
Messages
276
Reaction score
2
I was wondering if it is possible to have the CC detect what spec you are in and based on your spec change to a specific rotation for that specific spec (without a GUI or reloading the bot)?

For example Arms and Prot.
Code:
if (spec = Arms)
 {
   do this rotation;
 }
else if (spec = Protection)
 {
   do this rotation;
 }

If so, how can it be done or are there any CC's out there that do this currently?

Thanks!
 
As far as I know, there is not built-in property for this kind of thing in HB.
You have to play with lua codes, probably with this api.
 
Do you mean you want it to change rotations depending on which spec you are? Like if you first log on your warrior as Arms spec, and you have dual-spec so you switch to Fury/Prot spec, you want the bot/cc to detect the spec change and change the rotation accordingly?
 
You could pick a spell that only that spec would have and use SpellManager.Spells.Keys.Contains(spell)
 
Do you mean you want it to change rotations depending on which spec you are? Like if you first log on your warrior as Arms spec, and you have dual-spec so you switch to Fury/Prot spec, you want the bot/cc to detect the spec change and change the rotation accordingly?

Yes. I currently switch specs a lot in my 10man raid group between tank and arms dps and we run at a very fast pace and I often don't have time to reload HB before they enter combat, only enough to active the other spec and equip gear. I am looking for a way to remove the need to do so.
 
You could pick a spell that only that spec would have and use SpellManager.Spells.Keys.Contains(spell)

So for example:

Code:
if SpellManager.Spells.Keys.Contains("Last Stand")
 {
     Tank Rotation Here;
 }
else if SpellManager.Spells.Keys.Contains("Deadly Calm")
 {
     Arms Rotation Here;
 }

Would be the proper implementation of the code?
*Sorry if its noob question, I have never created a CC and have been having issues learning*
 
Last edited:
yes, make sure to put the spell name in quotations b/c it needs to be a string.
 
I'd love if this were implemented into HB. I do the same thing with my shaman switching between dps and resto, or my DK with blood/frost, and my other dual spec toons. I have to close the bot, switch specs and gear, then open the bot again and start it up. It takes a lot of time, and sometimes the groups I run with don't wait, so I have to run to catch up to them, and they ask why I'm always making them wait. I'm running out of excuses, honestly, but I keep trying to come up with them.

If this is something that could be programmed into the bot, or made as a plugin, that would be so wonderful.
 
I'd love if this were implemented into HB. I do the same thing with my shaman switching between dps and resto, or my DK with blood/frost, and my other dual spec toons. I have to close the bot, switch specs and gear, then open the bot again and start it up. It takes a lot of time, and sometimes the groups I run with don't wait, so I have to run to catch up to them, and they ask why I'm always making them wait. I'm running out of excuses, honestly, but I keep trying to come up with them.

If this is something that could be programmed into the bot, or made as a plugin, that would be so wonderful.

I am honestly surprised that there's no way to reload a different CC stock with HB or at least a plugin to do this.
With the ability to load a different CC (without reloading HB completely) or a plugin for it; it would remove the need to have HB implement a spec check function.
 
I am honestly surprised that there's no way to reload a different CC stock with HB or at least a plugin to do this.
With the ability to load a different CC (without reloading HB completely) or a plugin for it; it would remove the need to have HB implement a spec check function.

Yeah, as it stands right now, all you can do is close it and reopen it once you're in the spec you want to use, and then ask everyone to wait while it loads up. :/
 
Yeah, as it stands right now, all you can do is close it and reopen it once you're in the spec you want to use, and then ask everyone to wait while it loads up. :/

Yeah, I don't ask them to wait tho, If they start the boss before it loads up I just suffer on the meters. lol
 
yes, make sure to put the spell name in quotations b/c it needs to be a string.

Thanks a ton jasf10, I got this working smoothly. Now to just tighten up my tank rotation in the CC and ill be golden!
 
Just check out Singular.

So long as you're using the same CC, the CC can handle spec switches fairly easily. (We do it with any talent changes. Not glyph changes at the moment. [Really should fix that...])
 
Just check out Singular.

So long as you're using the same CC, the CC can handle spec switches fairly easily. (We do it with any talent changes. Not glyph changes at the moment. [Really should fix that...])

Apoc, with Singular, is there any way you can clean up the rotations or make them tighter and faster? I don't know exactly how to explain it, but I've noticed with some CCs versus Singular that Singular seems slow or clunky with rotations. It also seems that sometimes the DPS is a bit lower than another CC made for the same class, such as Frost DK for example. With Singular I can get ~19k dps, but with a different CC suck as Deathstrike (for example) I can get ~21k dps.

I know it's probably worthless of me to say, but I can give you info from sites like EJ, or other areas, for rotations if you need them. Just let me know for what class/spec you need it, and I'll do my best to get it to you.
 
Just check out Singular.

So long as you're using the same CC, the CC can handle spec switches fairly easily. (We do it with any talent changes. Not glyph changes at the moment. [Really should fix that...])

I would, but I find that I get better numbers and faster rotations and switches with other CC's.

Going from single target tanking to aoe tanking for example or from single target dps to aoe dps.
 
I would, but I find that I get better numbers and faster rotations and switches with other CC's.

Going from single target tanking to aoe tanking for example or from single target dps to aoe dps.
what he means is, look at singular, and see how singular deals with spec detection.
 
Aah, gotcha. I have it working good from jasf10's suggestion, but I am having issues with only 1 part of the CC. Ad detection.

Code:
#region Add Detection
        //Credit to CodeNameGamma for detectAdds code
        private List<WoWUnit> adds = new List<WoWUnit>();

        private List<WoWUnit> detectAdds()
        {
            List<WoWUnit> addList = ObjectManager.GetObjectsOfType<WoWUnit>(false).FindAll(unit =>
                        unit.Guid != Me.Guid &&
                        unit.Distance < 10.00 &&
                        (unit.IsTargetingMyPartyMember || unit.IsTargetingMyRaidMember) &&
                        !unit.IsFriendly &&
                        !unit.IsPet &&
                        !Styx.Logic.Blacklist.Contains(unit.Guid));

            if (addList.Count > 1)
            {
                Logging.Write("We have " + addList.Count.ToString() + " adds!");
            }
            return addList;
        }
        #endregion

Am using the following in the combat routine to check ads. (... = the remainder of the rotation stuff)

Code:
public override void Combat()
        {
            adds = detectAdds();

			if (SpellManager.Spells.Keys.Contains("Last Stand"))
			{
        ...

I haven't done any changes to the ad detection code from the original Titan Arms 1.4 (which works great), Only added spec detection and prot rotation.

Any ideas?
 

Attachments

I don't know if (unit.IsTargetingMyPartyMember || unit.IsTargetingMyRaidMember) will return true if its targeting you. I could be wrong. But if im right and you are tanking, then it could return no adds if you have full aggro.
 
Last edited:
Aah, gotcha. I have it working good from jasf10's suggestion, but I am having issues with only 1 part of the CC. Ad detection.

Code:
#region Add Detection
        //Credit to CodeNameGamma for detectAdds code
        private List<WoWUnit> adds = new List<WoWUnit>();

        private List<WoWUnit> detectAdds()
        {
            List<WoWUnit> addList = ObjectManager.GetObjectsOfType<WoWUnit>(false).FindAll(unit =>
                        unit.Guid != Me.Guid &&
                        unit.Distance < 10.00 &&
                        (unit.IsTargetingMyPartyMember || unit.IsTargetingMyRaidMember) &&
                        !unit.IsFriendly &&
                        !unit.IsPet &&
                        !Styx.Logic.Blacklist.Contains(unit.Guid));

            if (addList.Count > 1)
            {
                Logging.Write("We have " + addList.Count.ToString() + " adds!");
            }
            return addList;
        }
        #endregion

Am using the following in the combat routine to check ads. (... = the remainder of the rotation stuff)

Code:
public override void Combat()
        {
            adds = detectAdds();

			if (SpellManager.Spells.Keys.Contains("Last Stand"))
			{
        ...

I haven't done any changes to the ad detection code from the original Titan Arms 1.4 (which works great), Only added spec detection and prot rotation.

Any ideas?

As much as i like you, Stree. It wouldnt hurt to ask before publishing any shape or form of my work in any forum section.
 
Aah, gotcha. I have it working good from jasf10's suggestion, but I am having issues with only 1 part of the CC. Ad detection.

Code:
#region Add Detection
        //Credit to CodeNameGamma for detectAdds code
        private List<wowunit> adds = new List<wowunit>();

        private List<wowunit> detectAdds()
        {
            List<wowunit> addList = ObjectManager.GetObjectsOfType<wowunit>(false).FindAll(unit =>
                        unit.Guid != Me.Guid &&
                        unit.Distance < 10.00 &&
                        (unit.IsTargetingMyPartyMember || unit.IsTargetingMyRaidMember) &&
                        !unit.IsFriendly &&
                        !unit.IsPet &&
                        !Styx.Logic.Blacklist.Contains(unit.Guid));

            if (addList.Count > 1)
            {
                Logging.Write("We have " + addList.Count.ToString() + " adds!");
            }
            return addList;
        }
        #endregion

Am using the following in the combat routine to check ads. (... = the remainder of the rotation stuff)

Code:
public override void Combat()
        {
            adds = detectAdds();

            if (SpellManager.Spells.Keys.Contains("Last Stand"))
            {
        ...

I haven't done any changes to the ad detection code from the original Titan Arms 1.4 (which works great), Only added spec detection and prot rotation.

Any ideas?

you dont need
Code:
</wowunit></wowunit></wowunit></wowunit></wowunit>  adds = detectAdds();

when you wanna use it just call detectAdds().Count > 0 <wowunit><wowunit><wowunit><wowunit><wowunit>
</wowunit></wowunit></wowunit></wowunit></wowunit>
 
Back
Top