Jump to content

How to find what hostile player is casting


Recommended Posts

I'm making a fight class for a holy pally follower. I need to be able to find what the player is casting so I can cast Blessing of Sacrifice to remove fear/polymorph. Any help would be appreciated. I tried pic related but it doesn't work. I assume it's because it isn't targeting the person trying to fear or poly me, so being able to find if someone is casting that on me is what I need.

FC.png

Link to comment
Share on other sites

Hello, for this behavior you need to subscribe lua events with arguments(wManager.Wow.Helpers.EventsLuaWithArgs.OnEventsLuaWithArgs).

But i belive the event 'COMBAT_LOG_EVENT_UNFILTERED'  is also not working yet for 2.4.3(https://wrobot.eu/forums/topic/5519-register-combat_log-with-args/).

If it works you could add a c# code to your fightclass. It could look like this:

        //example
        private void EventsLuaWithArgsOnOnEventsLuaWithArgs(LuaEventsId id, List<string> args)
        {
            if (id == LuaEventsId.COMBAT_LOG_EVENT_UNFILTERED && args[8] == ObjectManager.Me.Name)
            {
                if (args[2] == "Polymorph")
                {
                    Logging.Write("Someone is casting Polymorph on me");
                    ///...
                }
            }
        }

 

Otherwise you can use 'UNIT_SPELLCAST_SENT' which should work as intend:

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.UNIT_SPELLCAST_SENT && args[3] == wManager.Wow.ObjectManager.ObjectManager.Me.Name)
            {
                if (args[1] == "Polymorph" || args[1] == "Fear")
                {
                    robotManager.Helpful.Logging.Write("Someone casts " + args[1] + " on me");
                    wManager.Wow.Helpers.SpellManager.CastSpellByNameOn("Blessing of Sacrifice", "party1");
			//you could add here a task in case if you are on global cooldown to cast it later
                }
            }
     };
     System.Threading.Thread.Sleep(2000);
}

 

 

and here's an example how you can implement the c# code into your fightclass: BoS example.xml

Link to comment
Share on other sites

  • 2 weeks later...

The 2.4.3 version of wManager.dll doesn't seem to have a class EventsLuaWithArgs.
Any current workaround for that? I'd love to read combatlog events to automate stuff for a PvP fightclass.

Link to comment
Share on other sites

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...