If you see "01:14:47 - Cast Healing Sphere" in the log you can try this mw.xml and use '/aoecast Healing Sphere' as macro to cast on target.
Otherwise i think the argument(s) of LuaEventsId.EXECUTE_CHAT_LINE may have a bug like on 3.3.5a the unfiltered combat log but that's just an assumption because this should work
under normal circumstances.
Hello you can try this one: mw.xml
I tested it on 3.3.5a but it should also work for 5.4. I've written an own method to cast on position.
The result: you see the green circle almost never.
There can be more improvements to this code, like to read the input string & check the content. But for this purpose it's enough.
How the code look like:
if (wManager.Statistics.RunningTimeInSec() < 2)
{
robotManager.Helpful.Logging.Write("Register OnEventsLuaWithArgs");
wManager.Wow.Helpers.EventsLuaWithArgs.OnEventsLuaWithArgs += delegate (wManager.Wow.Enums.LuaEventsId id, System.Collections.Generic.List<string> args)
{
if (id == wManager.Wow.Enums.LuaEventsId.EXECUTE_CHAT_LINE)
{
string spellName = "Healing Sphere";
if (args[0].ToUpper().Equals(("/cast @player " + spellName).ToUpper()))
{
var t = System.Threading.Tasks.Task.Run(async delegate
{
System.Threading.Thread.Sleep(3);
wManager.Wow.Helpers.ClickOnTerrain.Pulse(wManager.Wow.ObjectManager.ObjectManager.Me.Position);
System.Threading.Thread.Sleep(2);
wManager.Wow.Helpers.ClickOnTerrain.Pulse(wManager.Wow.ObjectManager.ObjectManager.Me.Position);
});
wManager.Wow.Helpers.SpellManager.CastSpellByNameOn(spellName, "");
}
if (args[0].ToUpper().Equals(("/cast @target " + spellName).ToUpper()))
{
if (wManager.Wow.ObjectManager.ObjectManager.Me.Target != 0)
{
var t = System.Threading.Tasks.Task.Run(async delegate
{
System.Threading.Thread.Sleep(3);
wManager.Wow.Helpers.ClickOnTerrain.Pulse(wManager.Wow.ObjectManager.ObjectManager.Me.TargetObject.Position);
System.Threading.Thread.Sleep(2);
wManager.Wow.Helpers.ClickOnTerrain.Pulse(wManager.Wow.ObjectManager.ObjectManager.Me.TargetObject.Position);
});
wManager.Wow.Helpers.SpellManager.CastSpellByNameOn(spellName, "");
}
}
if (args[0].ToUpper().Equals(("/cast @focus " + spellName).ToUpper()))
{
if (wManager.Wow.ObjectManager.ObjectManager.Me.FocusGuid != 0)
{
var t = System.Threading.Tasks.Task.Run(async delegate
{
System.Threading.Thread.Sleep(3);
wManager.Wow.Helpers.ClickOnTerrain.Pulse(wManager.Wow.ObjectManager.ObjectManager.Me.FocusObj.Position);
System.Threading.Thread.Sleep(2);
wManager.Wow.Helpers.ClickOnTerrain.Pulse(wManager.Wow.ObjectManager.ObjectManager.Me.FocusObj.Position);
});
wManager.Wow.Helpers.SpellManager.CastSpellByNameOn(spellName, "");
}
}
if (args[0].ToUpper().Equals(("/cast @party1 " + spellName).ToUpper()))
{
string toParse =
wManager.Wow.Helpers.Lua.LuaDoString("guid = UnitGUID('party1')", "guid")
.Replace("x", string.Empty);
ulong guid = ulong.Parse(toParse, System.Globalization.NumberStyles.HexNumber, null);
if (guid != 0)
{
Vector3 objPosition =
wManager.Wow.ObjectManager.ObjectManager.GetObjectByGuid(guid).Position;
var t = System.Threading.Tasks.Task.Run(async delegate
{
System.Threading.Thread.Sleep(3);
wManager.Wow.Helpers.ClickOnTerrain.Pulse(objPosition);
System.Threading.Thread.Sleep(2);
wManager.Wow.Helpers.ClickOnTerrain.Pulse(objPosition);
});
wManager.Wow.Helpers.SpellManager.CastSpellByNameOn(spellName, "");
}
}
if (args[0].ToUpper().Equals(("/cast @party2 " + spellName).ToUpper()))
{
string toParse =
wManager.Wow.Helpers.Lua.LuaDoString("guid = UnitGUID('party2')", "guid")
.Replace("x", string.Empty);
ulong guid = ulong.Parse(toParse, System.Globalization.NumberStyles.HexNumber, null);
if (guid != 0)
{
Vector3 objPosition =
wManager.Wow.ObjectManager.ObjectManager.GetObjectByGuid(guid).Position;
var t = System.Threading.Tasks.Task.Run(async delegate
{
System.Threading.Thread.Sleep(3);
wManager.Wow.Helpers.ClickOnTerrain.Pulse(objPosition);
System.Threading.Thread.Sleep(2);
wManager.Wow.Helpers.ClickOnTerrain.Pulse(objPosition);
});
wManager.Wow.Helpers.SpellManager.CastSpellByNameOn(spellName, "");
}
}
}
};
System.Threading.Thread.Sleep(2000);
}
And in-game you just make a macro like this to use:
You can also replace '@target' with
'@player'
'@focus'
'@party1'
'@party2'
Edit: updated fightclass & @OP it did work after WRobot update if someone is interested
@yesimbestworld So i trimmed the c# code everything worked fine on 3.3.5a dunno what's wrong on 5.4.8 but now it's more simpler to find the error if one will occure: mw.xml
Try only '/cast Healing Sphere' in your macro(it will now only cast on target). If that method still fails, i'm not able to say what's not working exactly on your expansion.
Otherwise you may disable addons, plugins or even backup & reset your settings in WRobot.