Expression Editor Query Help

Post Reply
Vlyxnol
Posts: 6
Joined: Mon May 11, 2009 6:42 am

Expression Editor Query Help

Post by Vlyxnol » Thu Jan 05, 2012 7:54 am

I'm looking to create a query that shows only damage done to a mob during its cast of Fiery Grip. Their is an entry for when Fiery Grip is cast, when players are afflicted, and when Fiery Grip fades from players. The query below obviously shows all damage done to Corruptions and shows all entries for Fiery Grip, however I am looking to eliminate the damage done to the Corruption after Fiery Grip fades and before the next cast.

spell = "Fiery Grip"
and sourceName = "Corruption"
OR targetName = "Corruption"
and type=1



Thanks for any assistance you can offer!

Vlyxnol

nipil
Posts: 230
Joined: Fri Oct 22, 2010 2:49 pm

Re: Expression Editor Query Help

Post by nipil » Thu Jan 05, 2012 5:42 pm

What you want is triggered requests, which cannot be done using current version of XE (it's planned for the next version though, afaik, which is to come "when it's done").

In the meantime, what you're doing is the best way to do it as of now : browse down to for Fiery grip start event, read the damage entries until the fiery grip fades.

Vlyxnol
Posts: 6
Joined: Mon May 11, 2009 6:42 am

Re: Expression Editor Query Help

Post by Vlyxnol » Fri Jan 06, 2012 12:18 am

Thank you for the reply and all the hard work that goes into WoL you guys truly do some amazing work.

Ruthenia
Posts: 12
Joined: Fri Dec 09, 2011 8:52 am

Re: Expression Editor Query Help

Post by Ruthenia » Tue Jan 10, 2012 10:53 am

For needs like that I bring up my trusty 'ol visual studio and write a quick parser for my specific needs.

Here's one for you.

Code: Select all

using System;
using System.Collections.Generic;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            StreamReader sr = new StreamReader(@"D:\Games\World of Warcraft\WoW\Logs\tmpLog.txt");
            string line = "";
            bool startPrinting = false;
            List<string> activeCorruption = new List<string>();

            while ((line = sr.ReadLine()) != null)
            {
                string[] fields = line.Split(',');

                if (fields[2] == "\"Corruption\""  && fields[10] == "\"Fiery Grip\"")
                {
                    if (fields[0].Contains("SPELL_AURA_APPLIED"))
                    {
                        activeCorruption.Add(fields[1]);
                        Console.WriteLine(line);
                        startPrinting = true;
                    }
                    else if (fields[0].Contains("SPELL_AURA_REMOVED"))
                    {
                        activeCorruption.Remove(fields[1]);
                        Console.WriteLine(line);
                        Console.WriteLine();
                        startPrinting = false;
                        Console.ReadLine();
                    }
                }
               
                else if (startPrinting && fields[6] == "\"Corruption\"" && activeCorruption.Contains(fields[5]) && fields[0].Contains("_DAMAGE"))
                    Console.WriteLine(line);


            }
            Console.ReadLine();
        }
    }
}

Post Reply