Hey there, have a couple issues on Demon Hunter Havoc spec. 1. The setting for "don't use Fel Rush" doesn't appear to be doing anything. I set all to False and it still kept doing it anyway. 2. Going on #1, Fel rush is fine to be in the rotation, but it doesn't do anything after it does Fel Rush. It just sits on the other side of training dummy and singular writes "[Singular] warning: facing disabled and not facing Raider's Training Dummy.B2A5 @ 2.9 yds " 3. It's isn't casting Demon Blades when you have the talent. It actually changes the name from "Demon's Bite" to "Demon Blades". I think if you have the talent, it needs to cast the updated text. Very small Log attached. By the way, Vengeance is very good so far!
Target dummies don't fight back or aggro. So, this confuses the combat routine and leads it to believe that the mob is never being "Pulled" Given this, the bot will only fight using its Pull behaviors instead of its actual combat behaviors. This is what's causing your #1 and #2 issue. There's two settings for "Fel Rush" - one is to allow the bot to use it while engaging a mob, and one is to allow the bot to use it while DPSing the mob. If you have it turned off for DPS but turned on for engaging, it will spam it on the Target Dummy because the Target Dummy never "engages" back. Try instead letting it fight mobs that will fight back and see how it does. For your #3 issue - Demon Blades isn't a castable ability. It's a passive talent which replaces Demon Bite. So it's weird that Singular would be trying to spam it even thought it's passive. I'll add a check should prevent Singular from trying to use it if the talent is taken. Thanks for the report!
Will do on #1 and #2. for #3, it actually changes the name of it. Right now, it has: Code: Spell.Cast("Demon's Bite") // , ret => !Common.HasTalent(DemonHunterTalents.DemonBlades) - Demon Blades replaces it, this shouldn't be needed. it needs to be something like... Code: string demonBiteSpellName = (Common.HasTalent(DemonHunterTalents.DemonBlades) ? "Demon Blades" : "Demon's Bite"); ... Spell.Cast(demonBiteSpellName)
Casting it as a string in this manner wouldn't be a good idea unfortunately. If the player doesn't have the talent, then we shouldn't be doing anymore work than we need to - the routine should just ignore it all together. Using it like the way you suggested would cause the log to be spammed with 'usage' of an ability that can't directly be used since it's a passive. Also, spells that replace spells can be cast by the original spell. So casting Demon's Bite would also internally invoke casting Demon Blades if the player has the talent. A good example is in the Retribution Paladin code. PHP: Spell.Cast("Blade of Justice"), //Can be replaced by Blade of Wrath or Divine Hammer - BoJ casts all ways. This single Spell.Cast() will also cast Blade of Wrath or Divine Hammer depending on which talent the player has chosen. No extra checks required. Doing it this way is better on performance (on a very small scale of course.) ?: shouldn't really ever need to be used for casting spells in Singular unless you're calculating heal priority. For this specific situation, - the best method of approach would be to just use: PHP: Spell.Cast("Demon's Bite", ret => !Common.HasTalent(DemonHunterTalents.DemonBlades))
I'm with you there, but it wasn't casting it I watched my guy just sit there and auto attack as it was spamming the window with that ability. Maybe something to do with the training dummy? I'll try it again today with the new version on real mobs and see what happens.
I clearly didn't play Havoc enough. After staring at it long enough, I realized that it wasn't an ability anymore. I thought the ability was replaced by another ability. Not even sure why they changed the name of it when it's not even used. It appears to be OK now. Apparently they replaced the ability with a passive, which I don't think they do often. You were correct though that we needed to update it so it doesn't cast if you have the ability.
Hey echo, spriest doesnt seem to be using shadow mend. It picks the talent so that it doesnt hurt them, but it never uses it. Or I haven't seen it used, so many times in combat it would be almost dead and instead of casting it just keeps going and dies, or just gets really low in health then eats after combat instead of just healing up and going on.
Here is a log file where it uses Fel Rush and then doesn't turn to target the mob again. I did the legion invasion. Other than that, it was doing just fine. LogMark #1 and LogMark #2 show it. Is there a setting I am missing to enable facing? When it used Vengeful Retreat + Fel Rush, it was awesome. The problem only comes in when it uses Fel Rush to get to the other side of the mob. Code: [14:11:03.411 N] [Singular] *Fel Rush on Arch Magus Velysra.8730 @ 50.3% at 0.0 yds [14:11:04.050 N] (Singular) (Singular) Group Member: raid11 disabled but could not be found [14:11:04.124 N] (Singular) [WoWRedError] 253 [14:11:03.931 N] [Singular] warning: facing disabled and not facing Arch Magus Velysra.8730 @ 0.0 yds [14:11:06.107 D] LogMark pressed.
I tried to add a spellcast to the blood.cs for my deathknight, I want it to cast Wraith March when stunned here is what i did: But it seems to do nothing. Here is a log where it didn't do anything and i died as a result. Arthur
Hello! it is normal i'm a outlaw rogue and still see "combat" on routines? thank you! Gyazo - c5edc6d84335a56bf0b479a1cc4b9fcf.png
Enhancement Shaman here. It uses Feral Spirit on CD even though I set it up to never use it, since I wanna cast it manually. Can't find the mistake in the code though.
It feels like this isn't working right if that is the case. Can you submit a full log that shows your talents, etc? Might be bug from that too. Code: private static bool NeedFeralSpirit { get { return ShamanSettings.FeralSpiritCastOn == CastOn.All || (ShamanSettings.FeralSpiritCastOn == CastOn.Bosses && StyxWoW.Me.CurrentTarget.Elite) || (ShamanSettings.FeralSpiritCastOn == CastOn.Players && Unit.NearbyUnfriendlyUnits.Any(u => u.IsPlayer && u.Combat && u.IsTargetingMeOrPet)); } } Even though bool is false by default, not seeing CastOn.Never makes me think it's not working. Maybe add another line at the top there and do Code: if (ShamanSettings.FeralSpiritCastOn == CastOn.Never) { return false; } then do the normal return and see if it makes it better.
After I cleared cache, deleted all my settings and tried it again, it works just fine and it facing the target again. Having said that I've died so much to Vengeful Retreat and just had to turn it off. Leaping off of mountains, jumping into volcanos. Just going places he's not supposed to. I do, however, have a fix. *ALWAYS have at least 1 Fel Rush available (preferably closer to the 2nd one being up) *Put Fel Rush ahead of Vengeful Retreat if not in melee range. *Put both of those abilities ahead of pretty much all of the normal rotation. Doing that will always allow Vengeful Retreat + Fel Rush which will at least put you back where you were supposed to be. Code: [00:04:32.992 N] [Singular] *Vengeful Retreat on Unstable Earth Spirit.61DE @ 33.1% at 0.5 yds [00:04:33.461 N] (Singular) MoveToMelee(Moved): towards Unstable Earth Spirit.61DE @ 6.9 yds [00:04:33.478 N] (Singular) MoveToMelee(Moved): towards Unstable Earth Spirit.61DE @ 6.9 yds [00:04:34.058 V] Loading Draenor_23_24 [00:04:34.108 V] Loading Draenor_22_23 [00:04:34.162 V] Loading Draenor_22_24 [00:04:34.496 N] (Singular) MoveToMelee(Moved): towards Unstable Earth Spirit.61DE @ 25.0 yds [00:04:34.510 N] (Singular) MoveToMelee(Moved): towards Unstable Earth Spirit.61DE @ 25.0 yds [00:04:35.504 N] (Singular) MoveToMelee(Moved): towards Unstable Earth Spirit.61DE @ 50.1 yds [00:04:35.513 N] (Singular) MoveToMelee(Moved): towards Unstable Earth Spirit.61DE @ 50.1 yds [00:04:35.570 D] Could not generate path from {4353.764, 4602.033, 167.6925} to {4343.069, 4642.097, 199.5199} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:35.635 D] Could not generate path from {4354.067, 4600.919, 165.2318} to {4342.875, 4642.137, 200.0114} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:35.699 D] Could not generate path from {4354.365, 4599.821, 162.7263} to {4342.875, 4642.137, 199.8879} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:35.776 D] Could not generate path from {4354.718, 4598.521, 159.6528} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:35.839 D] Could not generate path from {4354.993, 4597.507, 157.1786} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:35.906 D] Could not generate path from {4355.305, 4596.359, 154.2905} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:35.967 D] Could not generate path from {4355.599, 4595.278, 151.4908} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.042 D] Could not generate path from {4355.947, 4593.995, 148.0636} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.104 D] Could not generate path from {4356.231, 4592.947, 145.1852} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.177 D] Could not generate path from {4356.566, 4591.715, 141.701} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.243 D] Could not generate path from {4356.855, 4590.65, 138.6114} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.304 D] Could not generate path from {4357.144, 4589.586, 135.4453} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.379 D] Could not generate path from {4357.479, 4588.354, 131.6809} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.441 D] Could not generate path from {4357.768, 4587.29, 128.3495} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.516 N] (Singular) MoveToMelee(PathGenerationFailed): towards Unstable Earth Spirit.61DE @ 95.1 yds [00:04:36.525 N] (Singular) MoveToMelee(PathGenerationFailed): towards Unstable Earth Spirit.61DE @ 95.1 yds [00:04:36.516 D] Could not generate path from {4358.107, 4586.04, 124.3386} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.577 D] Could not generate path from {4358.392, 4584.993, 120.8968} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.641 D] Could not generate path from {4358.689, 4583.896, 117.2089} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.715 D] Could not generate path from {4359.029, 4582.646, 112.9111} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.777 D] Could not generate path from {4359.309, 4581.615, 109.2889} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.853 D] Could not generate path from {4359.644, 4580.382, 104.8989} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.915 D] Could not generate path from {4359.937, 4579.302, 101.0494} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:36.990 D] Could not generate path from {4360.286, 4578.018, 96.47819} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:37.051 D] Could not generate path from {4360.565, 4576.988, 92.80916} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:37.114 D] Could not generate path from {4360.85, 4575.941, 89.07998} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:37.187 D] Could not generate path from {4361.189, 4574.691, 84.62903} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:37.262 D] Could not generate path from {4361.528, 4573.441, 80.17809} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:37.323 D] Could not generate path from {4361.813, 4572.394, 76.4489} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:37.384 D] Could not generate path from {4362.097, 4571.347, 72.71973} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:37.530 N] (Singular) MoveToMelee(PathGenerationFailed): towards Unstable Earth Spirit.61DE @ 155.4 yds [00:04:37.540 N] (Singular) MoveToMelee(PathGenerationFailed): towards Unstable Earth Spirit.61DE @ 155.4 yds [00:04:37.456 D] Could not generate path from {4362.422, 4570.148, 68.44922} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:37.530 D] Could not generate path from {4362.757, 4568.915, 64.05841} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:37.591 D] Could not generate path from {4363.042, 4567.868, 60.32925} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:37.666 D] Could not generate path from {4363.372, 4566.652, 55.9986} to {4342.875, 4642.137, 199.65} on map Draenor (Phase: FWHordeGarrisonLeve2new) (time used: 0 milliseconds) @ FindStartPoly [00:04:37.724 D] Could not generate full path from {4363.629, 4565.707, 52.63029} to {4342.875, 4642.137, 199.65} (time used: 0 milliseconds) [00:04:38.089 D] Flying to kill poi from <4365.211, 4559.88, 31.87924> [00:04:38.254 N] Mounting: Dark Phoenix [00:04:40.366 N] (Singular) [WoWRedError] 50 [00:04:40.372 N] (Singular) YourCurrentTarget: changed to: (null) [00:04:40.375 N] (Singular) (Singular) Death Behavior: invoked! Alive=N, Ghost=N [00:04:40.377 N] (Singular) (Singular) Death: no self-rez ability available, release to standard Death Behavior [00:04:40.372 D] We died, Clearing current POI [00:04:40.372 D] Clearing POI - Reason Player Died [00:04:40.377 D] Activity: Releasing from corpse [00:04:42.728 N] I died!
You didn't ask a question. What's your question? If you're wondering if Infernal Strike can be turned off as a DPS ability - sure! I'll see that it's there in the next update.
Yea, I had noticed some issues with Vengeful Retreat being used badly on my testers as well. I was thinking to check the Fel Rush charges also. Perhaps even see if the path that Vengeful Retreat will land us to is a safe spot before hand. I've got it marked down to improve how it's handled along with Fel Rush. Thanks for the tips!
is there any way to disable fel rush and vengeful retreat? ive tried putting both to false but there is no change