Jump to content

Recommended Posts

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:

macro.JPG.71024da4b4ee96a39c9642c3d18a799f.JPG

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.

well, no error now but it just dont work. i loaded the fight class but yea, nothing happens. i've also rewritten the macro. it just uses orbs like usual like nothing changed. sadly :/ but thanks for your help anyways 
ps: i reinstalled wrobot and resetted the settings

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.

  • 3 years later...
  • 8 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...