Add on update for Bfa/pre-patch

Questions about addon itself.
97 posts Page 8 of 10
rmilyard
Posts: 7
Joined: 16 May 2018, 05:04


I am trying out a Warlock and I keep getting this error in chat:

Spell not found on Action Bars: Summon Felguard(30146)

Can you put that spell on Action Bars?
Wulfknightz
Posts: 11
Joined: 18 Jul 2018, 17:49


yes drag it from your summon pets action and drag felguard out and put on bar
Kaminaris
Site Admin
Posts: 322
Joined: 25 Jun 2017, 03:45


Paladin beta pushed out
Chaldan
Posts: 3
Joined: 03 Aug 2018, 18:41


I updated the Shammy for Elemental & Resto (I don't play Enhance, so I left it as is and didn't touch it).

Obviously it still needs work (for Enh), and I copied the rotation from Icy Vines.

But here is the code.
Code: Select all
-- Author      : PreZ, Pawel
-- Create Date : 2018-08-05

if not MaxDps then
	return;
end

local Shaman = MaxDps:NewModule('Shaman');

local _LightningBolt = 188196;
local _LavaBurst = 51505;
local _FlameShock = 188389;
local _EarthShock = 8042;
local _Earthquake = 61882;
local _UnleashFlame = 165462;
local _LightningShield = 324;
local _Ascendance = 114050;
local _ElementalBlast = 117014;
local _FireElemental = 198067;
local _EarthElemental = 198103;
local _Stormkeeper = 205495;
local _TotemMastery = 210643;
local _PoweroftheMaelstrom = 191861;
local _Icefury = 210714;
local _FrostShock = 196840;
local _AstralShift = 108271;

-- enh
local _Boulderfist = 201897;
local _Landslide = 197992;
local _Hailstorm = 210853;
local _Frostbrand = 196834;
local _CrashLightning = 187874;
local _Flametongue = 193796;
local _Stormstrike = 17364;
local _Stormbringer = 201845;
local _FeralSpirit = 51533;
local _AlphaWolf = 198434;
local _DoomWinds = 204945;
local _CrashingStorm = 192246;
local _LavaLash = 60103;
local _LightningBoltEnh = 187837;
local _Rockbiter = 193786;
local _FuryofAir = 197211;
local _Overcharge = 210727;
local _Windsong = 201898;
local _HotHand = 201900;
local _Windfury = 33757;
local _FeralLunge = 196884;
local _WindRushTotem = 192077;
local _Rainfall = 215864;
local _Tempest = 192234;
local _EarthenSpike = 188089;
local _Windstrike = 115356;
local _GatheringStorms = 198300;

-- resto
local _FlameShockResto = 188838;
local _LightningBoltResto = 403;

-- totems
local _SearingTotem = 3599;
local _ResonanceTotem = 202192;
local _StormElementalTotem = 152256;
local _FireElementalTotem = 2894;
local _EarthElementalTotem = 73903;
local _LiquidMagmaTotem = 192222;

-- auras
local _LavaSurge = 77762;
local _ExposedElements = 260694;

-- talents


function Shaman:Enable()
	MaxDps:Print(MaxDps.Colors.Info .. 'Shaman [Elemental, Enhancement, Restoration]')

	if MaxDps.Spec == 1 then
		MaxDps.NextSpell = Shaman.Elemental;
	elseif MaxDps.Spec == 2 then
		MaxDps.NextSpell = Shaman.Enhancement;
	elseif MaxDps.Spec == 3 then
		MaxDps.NextSpell = Shaman.Restoration;
	end

	return true;
end

function Shaman:Elemental(timeShift, currentSpell, gcd, talents)

	local mael = UnitPower('player', Enum.PowerType.Maelstrom);
	local healthPct = UnitHealth('player') / UnitHealthMax('player') * 100;
	local lavaCd, lavaCharges = MaxDps:SpellCharges(_LavaBurst, timeShift);
	local ascendance = MaxDps:Aura(_Ascendance, timeShift);
	local ascendanceCD = MaxDps:SpellAvailable(_Ascendance, timeShift);
	local ashift = MaxDps:SpellAvailable(_AstralShift, timeShift);
	local fet = MaxDps:SpellAvailable(_FireElemental, timeShift);
	local eet = MaxDps:SpellAvailable(_EarthElemental, timeShift);
	local stormk, stormkCD = MaxDps:SpellAvailable(_Stormkeeper, timeShift);
	local fs = MaxDps:TargetAura(_FlameShock, 4 + timeShift);
	local pet = UnitExists('pet');

	if currentSpell == _LavaBurst then
		mael = mael + 10;
		if lavaCharges > 0 then
			lavaCharges = lavaCharges - 1;
		end
	end

	if currentSpell == _LightningBolt then
		mael = mael + 8;
	end

	MaxDps:GlowCooldown(_Ascendance, talents[_Ascendance] and ascendanceCD);
	MaxDps:GlowCooldown(_FireElemental, not pet and fet);
	MaxDps:GlowCooldown(_EarthElemental, not pet and not fet and eet);
	MaxDps:GlowCooldown(_AstralShift, ashift and healthPct < 30);

	if talents[_TotemMastery] then
	    local restotem = MaxDps:Aura(_ResonanceTotem, timeShift);
	    local totemMastery, tmExp = Shaman:TotemMastery();
	    MaxDps:GlowCooldown(_TotemMastery, tmExp < 10 or not restotem);
	end

	-- May as well get a shot off before they run towards you!
	if not UnitAffectingCombat('player') then
		return _LightningBolt;
	end

	if not fs and MaxDps:SpellAvailable(_FlameShock, timeShift) then
		return _FlameShock;
	end

	if ascendance then
		if mael >= 92 then
			return _EarthShock;
		end

		if lavaCd <= 0 then
			return _LavaBurst;
		end
	end

	if talents[_ElementalBlast] and MaxDps:SpellAvailable(_ElementalBlast, timeShift) and
			not currentSpell == _ElementalBlast then
		return _ElementalBlast;
	end

	if talents[_LiquidMagmaTotem] and MaxDps:SpellAvailable(_LiquidMagmaTotem, timeShift) then
		return _LiquidMagmaTotem;
	end

	if not ascendance and stormk and not currentSpell == _Stormkeeper then
		return _Stormkeeper;
	end

	if MaxDps:Aura(_PoweroftheMaelstrom, timeShift) and lavaCharges < 2 then
		return _LightningBolt;
	end

	if talents[_Icefury] and MaxDps:Aura(_Icefury, timeShift) and mael >= 20 then
		return _FrostShock;
	end

	if mael >= 92 and not MaxDps:TargetAura(_ExposedElements, timeShift) then
		return _EarthShock;
	end

	if lavaCd <= 0 then
		return _LavaBurst;
	end

	if mael >= 60 and not MaxDps:TargetAura(_LavaSurge, timeShift) then
		return _EarthShock;
	end

	return _LightningBolt;
end

function Shaman:Enhancement(timeShift, currentSpell, gcd, talents)

	local healthPct = UnitHealth('player') / UnitHealthMax('player') * 100;
	local mael = UnitPower('player', Enum.PowerType.Maelstrom);
	local rockbiter = _Rockbiter;
	if talents[_Boulderfist] then
		rockbiter = _Boulderfist;
	end

	local rockbCd, rockbCharges = MaxDps:SpellCharges(rockbiter, timeShift);
	local rockb = MaxDps:Aura(_Boulderfist, timeShift + 2);
	local asc = MaxDps:Aura(_Ascendance, timeShift);
	local ashift = MaxDps:SpellAvailable(_AstralShift, timeShift);

	local stormstrike = _Stormstrike;
	if asc then
		stormstrike = _Windstrike;
	end

	local fs, fsCd = MaxDps:SpellAvailable(_FeralSpirit, timeShift);

	MaxDps:GlowCooldown(_FeralSpirit, fs);
	MaxDps:GlowCooldown(_CrashLightning, fsCd > 110 and not MaxDps:Aura(_GatheringStorms, timeShift));
	MaxDps:GlowCooldown(_DoomWinds, MaxDps:SpellAvailable(_DoomWinds, timeShift));
	MaxDps:GlowCooldown(_Ascendance, talents[_Ascendance] and MaxDps:SpellAvailable(_Ascendance, timeShift));
	MaxDps:GlowCooldown(_Windsong, talents[_Windsong] and MaxDps:SpellAvailable(_Windsong, timeShift));
	MaxDps:GlowCooldown(_AstralShift, ashift and healthPct < 30);

	-- 1. Cast Rockbiter to generate Maelstrom and maintain Landslide
	if not MaxDps:Aura(_Landslide, timeShift + 2) and rockbCd then
		return rockbiter;
	end

	-- 2. Cast Fury of Air if it is not present.
	if talents[_FuryofAir] and not MaxDps:PersistentAura(_FuryofAir) then
		return _FuryofAir;
	end

	-- 3. Cast Flametongue if the buff is not active.
	local ftCd = MaxDps:SpellAvailable(_Flametongue, timeShift);
	if not MaxDps:Aura(_Flametongue, timeShift + 4) and ftCd then
		return _Flametongue;
	end

	-- 4. Cast Earthen Spike.
	if talents[_EarthenSpike] and MaxDps:SpellAvailable(_EarthenSpike, timeShift) then
		return _EarthenSpike;
	end

	-- 5. Cast Windstrike with or without Stormbringer active.
	if talents[_Ascendance] and asc and MaxDps:SpellAvailable(_Windstrike, timeShift) then
		return _Windstrike;
	end

	-- 6. Cast Frostbrand to maintain the Hailstorm buff.
	if talents[_Hailstorm] and not MaxDps:Aura(_Frostbrand, timeShift + 4) then
		return _Frostbrand;
	end

	-- 7. Cast Windsong.
	if talents[_Windsong] and MaxDps:SpellAvailable(_Windsong, timeShift) then
		return _Windsong;
	end

	-- 8. Cast Stormstrike with Stormbringer active.
	if MaxDps:Aura(_Stormbringer, timeShift) and mael >= 20 then
		return stormstrike;
	end

	-- 9. Cast Lightning Bolt if above 50 Maelstrom with Overcharge.
	if talents[_Overcharge] and MaxDps:SpellAvailable(_LightningBoltEnh, timeShift) and mael > 50 then
		return _LightningBoltEnh;
	end

	-- 10. Cast Lava Lash with Hot Hand procs.
	if talents[_HotHand] and MaxDps:Aura(_HotHand, timeShift) then
		return _LavaLash;
	end

	-- 11. Cast Stormstrike.
	if MaxDps:SpellAvailable(_Stormstrike, timeShift) and mael >= 40  then
		return stormstrike;
	end

	-- 12. Cast Rockbiter.
	if rockbCharges >= 1 then
		return rockbiter;
	end

	-- 13.
	if talents[_CrashingStorm] and MaxDps:SpellAvailable(_CrashLightning, timeShift) then
		return _CrashLightning;
	end

	-- 14. Cast Lava Lash if you have more than 80 Maelstrom.
	if mael > 80 then
		return _LavaLash;
	end

	return nil;
end

function Shaman:Restoration(timeShift, currentSpell, gcd, talents)
	local healthPct = UnitHealth('player') / UnitHealthMax('player') * 100;
	local lavaCd, lavaCharges = MaxDps:SpellCharges(_LavaBurst, timeShift);
	local ashift = MaxDps:SpellAvailable(_AstralShift, timeShift);
	local eet = MaxDps:SpellAvailable(_EarthElemental, timeShift);
	local fs = MaxDps:TargetAura(_FlameShockResto, 4 + timeShift);

	if currentSpell == _LavaBurst then
		if lavaCharges > 0 then
			lavaCharges = lavaCharges - 1;
		end
	end

	MaxDps:GlowCooldown(_EarthElemental, eet);
	MaxDps:GlowCooldown(_AstralShift, ashift and healthPct < 30);

	-- May as well get a shot off before they run towards you!
	if not UnitAffectingCombat('player') then
		return _LightningBoltResto;
	end

	if not fs and MaxDps:SpellAvailable(_FlameShockResto, timeShift) then
		return _FlameShockResto;
	end

	if MaxDps:Aura(_PoweroftheMaelstrom, timeShift) and lavaCharges < 2 then
		return _LightningBoltResto;
	end

	if lavaCd <= 0 then
		return _LavaBurst;
	end

	return _LightningBoltResto;
end

function Shaman:Totem()
	local have, totemName, startTime, duration = GetTotemInfo(1);
	if not have then
		return '', 0;
	end;
	local expiration = startTime + duration - GetTime();
	return totemName, expiration;
end

function Shaman:TotemMastery()
	local tmName = GetSpellInfo(_TotemMastery);

	for i = 1, 4 do
		local haveTotem, totemName, startTime, duration = GetTotemInfo(i);
		if haveTotem and totemName == tmName then
			return true, startTime + duration - GetTime();
		end
	end
	return false, 0;
end
Feel free to use that for the basis for the Shammy update.

EDIT (8/4/2018): Updated to add a glow on Astral Shift if the shammy's health is < 30%.
EDIT (8/5/2018): Updated to add 'first strike' of lightning if not in combat. And to make Totem Mastery a 'glow' instead of part of the rotation (sometimes if I'm overpowered enough, I don't bother with the totems, but I want the rest of the rotation.)
Last edited by Chaldan on 05 Aug 2018, 13:48, edited 3 times in total.
Wulfknightz
Posts: 11
Joined: 18 Jul 2018, 17:49


List of installed MaxDps addons i have all installed (play all toons)

Full error log inside CODE bbcode (if there is a bug) spell not found on action bars: Execute(5308)

Clear info what is going on Playing on fury saying execute is not on board when it definitely is. I have massacre talent up (2 in this row due to ring) This may have something to do with it but have also tried replacing the skill a second time to see if that fixed it and it did not.
Kaminaris
Site Admin
Posts: 322
Joined: 25 Jun 2017, 03:45


screenshot + hover over execute on bars
tactiderp
Posts: 1
Joined: 18 Jul 2018, 14:54


Appreciate the work you are doing!

If you need anyone to test affliction lock or ret pally I would be happy to assist.

Also, I always have alpha and beta access to all games...so I can gladly help in the future.
Wulfknightz
Posts: 11
Joined: 18 Jul 2018, 17:49


here ya go.

https://imgur.com/a/umBhZqQ

bottom left chat shows message. right screen you will see tooltip.
EnderXi
Posts: 2
Joined: 06 Aug 2018, 18:29


Sadly im no programmer but I am an enchancement shaman basic details as follows:

Crash Lightning - 187874
Earth Elemental - 198103
Earth Shield - 974
Capacitor Totem - 192058
Feral Sprit - 51533
Flametounge - 193796
Frostbrand - 196384
Lava Lash - 60103
Lightning Bolt - 187837
Lightning Shield - 192106
Rockbiter - 193786
Stormstrike - 17364
Sundering - 197214
Tremor Totem - 8143

Rotation

Cast Flametongue if the buff is not active.
Cast Feral Spirit on cooldown.
Cast Stormstrike with or without Stormbringer.
Cast Flametongue regardless of buff duration to trigger Searing Assault.
Cast Sundering.
Cast Rockbiter if below 70 Maelstrom and about to reach 2 charges.
Cast Lava Lash if above 40 Maelstrom (50 with Fury of Air Icon Fury of Air taken.
Cast Rockbiter.
Kaminaris
Site Admin
Posts: 322
Joined: 25 Jun 2017, 03:45


05 Aug 2018, 00:37Wulfknightz wrote:
here ya go.

https://imgur.com/a/umBhZqQ

bottom left chat shows message. right screen you will see tooltip.
We would need to talk on bnet or some chat to get that fixed. PM me your btag or some way to contact.
97 posts Page 8 of 10
drogie łóżka stolik kawowy stół dębowy rozkładany