kauffman12 / EQLogParser

Everquest Log Parser for Live and TLP servers
Apache License 2.0
63 stars 20 forks source link

Crit% On selection requests, and log file maintenance #116

Open esr-sudo opened 11 months ago

esr-sudo commented 11 months ago

The damage meter allows including your additional crit chance from mods such as IoG.

I have two requests for this.

1 When enabled, it shows the amount of the mods for additional dot crit chance and nuke crit chance. If we are a class that only really cares about one or the other, it would be nice to have this display only the mod we want. (so we can keep the width of the damage meter overlay narrower).

2 It shows the amount of the additional mod. The parser wouldn't have a way of knowing what your natural crit chance is, but the player probably knows this. It would be nice if we could define our natural crit chance in a setting for that character, and when we have a burn mod applied, it would show our actual crit chance, not just the mod. This is just a small QoL improvement for people who play different characters.

With respect to the log file, it would be nice if possible if EQLP would have a setting to automatically archive the log file either on a schedule (whenever it is first run every week for example) or if the log file reaches a certain file size. I'm not certain if EQLP has the same problem with large log file sizes that GINA does, but even if it does not, it is nice to be able to have log files automatically archived should a person have a need to look something up at a later date. This is of course somewhat related to request #107 (old battle spam) and from reading that and looking at the data in appdata it seems like your philosophy is that a player would be deleting their log file on occasion...

kauffman12 commented 11 months ago

The CritRate works by always showing DDs and then if you're Bard, Beast, Druid, Enc, Nec, Ranger, SK, or Shaman it also includes DoT crit rate. I can change it to let you choose DD, DoT, or both so it's up to the player but on live I think it's a good list. This feature and the ADPS timeline are really geared toward live raiding tbh. It may not make sense for everyone.

BalforH commented 11 months ago

Howdy All Gonna second the request for log file maintenance (similar to Gina). Yes I read and see that eqlp saves a compressed folder in app data and honestly I dont think I like that.. imho its redundant. I currently have it set to archive every night and delete after 90 days so i now have logs files saved to 2 drives. If I just have to go into appdata and manually delete I will, it would be nice If I no longer needed gina to auto archive for me.. yes I know I could just do it manually but .. ) thanks for your time and patience with us.. )

kauffman12 commented 11 months ago

The compressed folders in app data is a chat database so I can search all your old chat quickly without having to open a log file. It's only chat, it's sorted in reverse time and broken into folders based on the day, has an index, and it's gzip to save space. It's not meant as a backup or for anyone to actually use directly. It's solely for chat search to work and I don't see that going away. If you really don't want to use chat search I can add an option to disable it and then it'll stop creating the chat database.

As far as a Gina log backup feature I can add that to the list. It wouldn't be that bad to do but I have a few other things to work on first.

BalforH commented 11 months ago

"It's solely for chat search" OK I understand that.. thank you

0xv1n commented 9 months ago

A very simple implementation of compression in C# that takes in a megabyte size and zips any files over that limit:

using System;
using System.IO;
using System.IO.Compression;

class Program
{
    static void Main(string[] args)
    {
        if (args.Length < 3)
        {
            Console.WriteLine("Usage: ZipFiles <directory_path> <output_zip_path> <max_size_in_MB>");
            return;
        }

        string directoryPath = args[0];
        string outputZipPath = args[1];
        long maxSizeInMB;

        if (!long.TryParse(args[2], out maxSizeInMB))
        {
            Console.WriteLine("Invalid max size argument. Please provide a valid number.");
            return;
        }
        ZipFiles(directoryPath, outputZipPath, maxSizeInMB);
    }

    static void ZipFiles(string sourceDirectory, string outputZipPath, long maxSizeInMB)
    {
        if (!Directory.Exists(sourceDirectory))
        {
            Console.WriteLine($"Directory not found: {sourceDirectory}");
            return;
        }

        string[] files = Directory.GetFiles(sourceDirectory);
        long totalSize = 0;

        using (ZipArchive zipArchive = ZipFile.Open(outputZipPath, ZipArchiveMode.Create))
        {
            foreach (string filePath in files)
            {
                FileInfo fileInfo = new FileInfo(filePath);
                totalSize += fileInfo.Length;

                if (totalSize > maxSizeInMB * 1024 * 1024)
                {
                    Console.WriteLine($"Total size exceeded {maxSizeInMB} MB. Creating zip file...");
                    break;
                }

                zipArchive.CreateEntryFromFile(filePath, Path.GetFileName(filePath));
            }
        }

        Console.WriteLine("Zip file created successfully.");
    }
}

The argument passed in can just be the threshold set by the user in the gui and have it set to run on startup or after days.

I'd put in a PR for this implemented but I dont have a community license yet and can't compile anything to test/dev on.

kauffman12 commented 9 months ago

Thanks but I was just planning on using a GzipStream and it'll probably be a windows service so you don't need to keep the parser running. I'll prob having something after holidays.

esr-sudo commented 9 months ago

The only necro burn that seems to be triggering the dot crit percentage in the damage overlay is intensity of the resolute. Activating intensity of the resolute does produce dot + 50 into the overlay.

Spire of necromancy and curse of muram are our main ones (that we cast anyway). Curse of muram is 40% to dot crit chance, and spire of necromancy varies slightly, based on the rank of the spire the necro has.

(It has ranks of 15%, 18%, 21%, and 25%)

Part of the difficulty of implementing the overlay including spire of necromancy into the crit chance overlay is that when using the default spells_us_str.txt, the emote from spire landing is the same on all of the ranks. The casting message does include the rank however. Using the casting message is not a perfect solution of course, because if the cast of the spire is interrupted or buff-locked the overlay would be displaying inaccurate data. A possible suggestion for this would be to have a field where the person enters the +crit chance from spire. I don't know if that would be simpler than just having the parser pick up the rank of the spire cast message and apply the correct crit mod.

I don't currently have enough aa's to test glyph, but if memory serves, glyph of ultimate power was also not increasing the crit chance in the damage overlay. At least rank 3 wasn't anyway.

kauffman12 commented 9 months ago

Glyph should work in the past couple versions. I'll have to try the others. Muram and Spire are in the adps file so I think I had seen them working with my necro a long time ago. But something probably broke.

kauffman12 commented 9 months ago

So I just tries this with my level 115 necro and on the test server. Both spire and muram worked. You do have the DoT option selected in the overlay right? They are separate now. Nuke, DoT, or both. I tried DoT and both and they show up.

esr-sudo commented 9 months ago

Yeah, it is definitely selected. It's just that the only one that makes it show up for me is intensity.

It is a bit surprising, because all of the effects show up in the ADPS timeline. Does the crit% chance pop-up require a certain selection for the reset to work with all of those options? I tried toggling that from on kill to every 30 seconds, every 60 seconds...etc. No change. Intensity is the only one that causes the crit% chance to pop up. The selection I'm using is dots only.

kauffman12 commented 8 months ago

It might have some sizing issues if the overlay window is too small maybe but I still haven't been able to reproduce this issue.

kauffman12 commented 5 months ago

Is this still an issue?