GamParse, TBL, and You

Discussion in 'The Veterans' Lounge' started by Beimeith, Dec 11, 2018.

Thread Status:
Not open for further replies.
  1. Brohg Augur

    That's post Alliance proc rate nerf in game, but (if I'm understanding the GamParse development timeline correctly) before removing heal amounts on swarm pets
  2. Beimeith Lord of the Game

    If you're talking about what I just posted, that is not including swarm pets. Those are currently set to not be counted.
  3. Beimeith Lord of the Game

    Just to clear a few things up:

    1) Yes, a few people I know have test versions.

    2) No, these versions are NOT yet fully (as possible) accurate. They have been to test very specific things and are still very much a work in progress.

    3) No, they did not pay me for special access, nor can you pay me for special access unless it's like really a lot.

    4) A few people made some joke comments about selling it in serverwide.eqresource channel. If you pay them for it you're dumb.

    5) If you *want* to help me test, don't ask. Hang out in serverwide.eqresource and when I ask for some people to help me test something, volunteer. But you'll need to like, actually *test* something and not just turn it on and use it like normal.
  4. Beimeith Lord of the Game

    As a progress update since I haven't done that in a bit:

    1) I recently rewrote how individual fights are combined together and it should now do so MUCH faster when combining many fights, as well as accurately combine heal and spell casts (which it didn't do correctly before).

    Also, as part of that, when you combine multiple fights together it will now automatically name that fight as "Combined: [NPC with the most Total HP]" by default unless you manually specify a name. Previously it would use the name of the first fight listed.

    2) I rewrote how logs are saved as a new file. This is the "Export as 1 fight log file" button on the overlay.

    3) Removed the FightList Tab as previously mentioned. That data is now available on the fight navigator which is resizable. GP will also save the settings of how you adjusted the width so you shouldn't have to readjust every time you restart. I am currently still working on saving similar width adjustments for other elements/dividers.

    4) Added Heal Overview Tab as previously mentioned. I am currently still adjusting what data is shown for this (though my last SS should be close to the final) and working on adding various settings you can use to adjust the output shown as well as buttons to format it to paste into EQ.

    5) YOU are now highlighted as green in the Overview/Heal Overview Tabs and as previously mentioned the player (if any) who gets a killshot is highlighted as red. I made a note to make the colors user configurable since I know a lot of players have colorblind issues.

    6) I added an option (did I mention it before?) to show some stats about your log file. It will show you a count of how many:

    • Melee-related (Crits/Special Attacks/Damage) Lines
    • Non-Melee-related (DDs/DoTs/DS/Feedback/etc.) Lines
    • Defense (Block/Parry/Dodge/Miss/etc.) Lines
    • Spell-related (Cast/Resist/Blocked/Interrupted/Fizzled/etc.) Lines
    • Heal-related (Crits/Heals/etc.) Lines
    • Chat (actual talking only) Lines
    This is currently very limited and not super accurate (yet) as it isn't a high priority but I plan to improve it further in the future to give a more accurate count with a better breakdown because I like things like that. Keep in mind that it only counts lines GP actually handles. If GP doesn't DO anything with that line, it won't be in the.

    7) Various other changes that should improve the responsiveness of the program.

    I'm working on it, but it really is almost a totally new program on the inside. I'm hoping to make a public test version soon.
    Gyurika Godofwar likes this.
  5. Filtomick New Member

    Beimeith; I meant no disrespect to you in my comment and was simply offering a potential path to getting more people from this community involved in a project many people clearly find useful. I even stated at the end that if you were not interested in open sourcing development and wanted to keep this a private project that I respected, unqualified, that decision.

    I apologize if you took it personally or as an attack and feel deeply saddened that this fragment was the one that caused you to respond as it was only supposed to give context and illustrate for those not familiar with such issues one of the major problems involved in the open vs. closed source debate.

    I do disagree about it practically being an 'all or nothing', especially without a better trust model for intermediaries to validate software. That's a point of debate for many other venues.

    I've tried to join this discussion respectfully and directly. My comment was not born of 'tinfoil hat conspiracy theory' but of real practical concern for the good health of a tool a very many people, myself included, clearly find useful and of a concern for your time and effort.

    I obviously failed to convey myself plainly but I hope this helps clarify my statements. I look forward to a final release of GamParse compatible with TBL and much improved! Again I'll re-state my admiration for the time and effort you've put into the project.

    It is not an easy problem you have taken on or a small amount of time or energy put into it. Thank you for all your hard work and if a crusty old C/C++ systems programmer can be of service to help, please let me know.
    Pirlo and Metanis like this.
  6. Beimeith Lord of the Game

    I had a longer reply but the stupid forum logged me out and I lost it.

    I'm not offended and I didn't take it personally. I also wasn't saying youre a tinfoil hatter, just that I've already heard people's conspiracy theories and I simply don't care. I'm not going to waste time trying to convince them otherwise.

    I may at some point invite some others to help if it gets too complicated or I don't have time but for now im ok with how it is now.
  7. I_Love_My_Bandwidth Mercslayer

    Thanks for the updates Beimeith. I, among many others, appreciate your work.
    NeverPayForLag and Jhenna_BB like this.
  8. Filthy casual Journeyman

  9. Beimeith Lord of the Game

  10. Beimeith Lord of the Game

    Also, re: update info:

    My test log I originally mentioned now loads in 18.25 minutes in vs 25.7 minutes in

    For funsies I also tested the new combine fights code by combining all 15k fights in the file. In it took 55 minutes to combine them all. As of this post has been crunching it for 6 hours and I have no idea how much longer it will take but I'm going to bed.

    So there are some pretty significant improvements so far. Responsiveness in other areas should also be improved quite a bit as well. I don't think there is too much more to be gained speed wise for loading a log as a 1.73GB file is going to take a while to parse even in the best of circumstances and pretty much all the relevant parsing functions were enabled in this test. Still, close to ~30% improvement I'm pretty happy with that.

    As mentioned before, results will vary depending on the complexity of the log (#fights) and the complexity of the fights themselves.
    Tucoh likes this.
  11. Tatanka Augur

    "leave the gun, keep the GamParse" ;)
  12. Spayce Augur

    Any chance the old source can be made available?

    Seems the best solution would have been to fix the current program to work with the new expansion, and then tackle a complete rewrite rather than having zero parse ability for almost a month now.

    A semi-competent engineer should be able to update the old source so we at least have something to parse with while the rewrite is happening. I consider myself semi-competent, and would be willing to make the changes.
    Filthy casual likes this.
  13. Zanarnar Augur

    if you don't like his time frame, write your own parser. Honestly people act so @#$#$ entitled these days.
    Metanis, Eaiana, Reht and 4 others like this.
  14. Spayce Augur

    I was offering to patch the old one...exactly what your rant suggests.

    I simply asked if the source could be made available so I could cobble something together while the improved version was being completed.

    Sorry if it offended you. Go cry somewhere else.
  15. Smokezz The Bane Crew

    We can live without it for a bit. Damn man.

    If you really want semi-accurate parses with the old version, and have the Linux subsystem or Cygwin on your machine...

    Quick dirty shell script...

    Yeah, each one on a single line. Never bothered to make it more efficient since it's a short term solution. Call it what you want. fixlogs perhaps. Oh, and don't have the end result parse file loaded in GamParse when you run it or it won't work. Close it, run the script re-open it.

    ./fixlogs eqlog_Smokebane_bristle.txt eqlog_Smokebane_parse.txt

    Load it up in and it gives semi accurate parses. The script strips out all of the new stuff on the ends of the lines. What I don't know is what's not parsed correctly when doing this so don't take things too seriously. Just wait for the new version to be done. Patience... good things are worth waiting for.


    cp $1 $2
    sed -i 's/ (Critical)//g' $2
    sed -i 's/ (Flurry)//g' $2
    sed -i 's/ (Flurry Critical)//g' $2
    sed -i 's/ (Critical Double Bow Shot)//g' $2
    sed -i 's/ (Critical Twincast)//g' $2
    sed -i 's/ (Critical Rampage)//g' $2
    sed -i 's/ (Critical Assassinate)//g' $2
    sed -i 's/ (Critical Headshot)//g' $2
    sed -i 's/ (Lucky Critical)//g' $2
    sed -i 's/ (Flurry Critical Rampage)//g' $2
    sed -i 's/ (Flurry Lucky Critical)//g' $2
    sed -i 's/ (Crippling Blow)//g' $2
    sed -i 's/ (Double Bow Shot)//g' $2
    sed -i 's/ (Crippling Bow Shot Crippling Blow)//g' $2
    sed -i 's/ (Double Bow Shot Crippling Blow)//g' $2
    sed -i 's/ (Double Bow Shot Finishing Blow)//g' $2
    sed -i 's/ (Flurry Crippling Blow)//g' $2
    sed -i 's/ (Rampage)//g' $2
    sed -i 's/ (Twincast)//g' $2
    sed -i 's/ (Lucky Crippling Blow)//g' $2
    sed -i 's/ (Lucky Critical Double Bow Shot)//g' $2
    sed -i 's/ (Lucky Critical Twincast)//g' $2
    sed -i 's/ (Flurry Lucky Crippling Blow)//g' $2
    sed -i 's/ (Lucky Double Bow Shot Crippling Blow)//g' $2
    sed -i 's/ (Lucky Critical Rampage)//g' $2
    sed -i 's/ (Lucky Deadly Strike)//g' $2
    sed -i 's/ (Flurry Lucky Critical Rampage)//g' $2
    sed -i 's/ (Flurry Slay Undead)//g' $2
    sed -i 's/ (Flurry Rampage)//g' $2
  16. Spayce Augur

    I'll have to get some old and new examples of DoT damage to also fix the issue lumping all DoTs into a new combatant rather than assigning it to the correct combatant.

    Guess I'm off to dig up log files.

    Thanks for the tip.
  17. Beimeith Lord of the Game

    As I've repeatedly said: It's not simply a matter of reading the new stuff (which it already does). calculated some things wrong. There is nothing to do other than rewrite it to calculate correctly.

    You're missing a few. Here is my current list, which I *think* is complete:

                DamageTags.Add("", 0);//No Tags, normal damage
                DamageTags.Add("Critical", 1);
                DamageTags.Add("Twincast", 2);//DoTs/HoTs only
                DamageTags.Add("Critical Twincast", 3);//DoTs/HoTs only
                DamageTags.Add("Lucky Critical", 4);
                DamageTags.Add("Lucky Critical Twincast", 5);//DoTs/HoTs only
                DamageTags.Add("Slay Undead", 6);
                DamageTags.Add("Lucky Slay Undead", 7);//Currently doesn't exist but may in the future.
                DamageTags.Add("Deadly Strike", 8);//Rogue Throwing. Is Crit.
                DamageTags.Add("Lucky Deadly Strike", 9);//Rogue Throwing. Is Crit.
                DamageTags.Add("Finishing Blow", 10);//Is Crit.
                DamageTags.Add("Lucky Finishing Blow", 11);//Is Crit.
                DamageTags.Add("Crippling Blow", 12);//Is Crit.
                DamageTags.Add("Lucky Crippling Blow", 13);//Is Crit.
                DamageTags.Add("Double Bow Shot", 14);
                DamageTags.Add("Critical Double Bow Shot", 15);
                DamageTags.Add("Lucky Critical Double Bow Shot", 16);
                DamageTags.Add("Double Bow Shot Crippling Blow", 17);//What it IS now.
                DamageTags.Add("Crippling Blow Double Bow Shot", 17);//What it SHOULD be.
                DamageTags.Add("Lucky Double Bow Shot Crippling Blow", 18);//What it IS now.
                DamageTags.Add("Lucky Crippling Blow Double Bow Shot", 18);//What it SHOULD be.
                DamageTags.Add("Headshot", 19);
                DamageTags.Add("Critical Headshot", 20);
                DamageTags.Add("Lucky Critical Headshot", 21);
                DamageTags.Add("Assassinate", 22);
                DamageTags.Add("Critical Assassinate", 23);
                DamageTags.Add("Lucky Assassinate", 24);//Only when using Throwing skill. IS CRITICAL.
                DamageTags.Add("Lucky Critical Assassinate", 25);
                DamageTags.Add("Flurry", 26);
                DamageTags.Add("Flurry Slay Undead", 27);
                DamageTags.Add("Flurry Critical", 28);
                DamageTags.Add("Flurry Lucky Critical", 29);
                DamageTags.Add("Flurry Finishing Blow", 30);
                DamageTags.Add("Flurry Lucky Finishing Blow", 31);
                DamageTags.Add("Flurry Crippling Blow", 32);
                DamageTags.Add("Flurry Lucky Crippling Blow", 33);
                DamageTags.Add("Rampage", 34);
                DamageTags.Add("Flurry Rampage", 35);//I think only pets can do this?
                DamageTags.Add("Critical Rampage", 36);//I think only pets can do this?
                DamageTags.Add("Lucky Critical Rampage", 37);//I think only pets can do this?
                DamageTags.Add("Flurry Critical Rampage", 38);//I think only pets can do this?
                DamageTags.Add("Flurry Lucky Critical Rampage", 39);//I think only pets can do this?
                DamageTags.Add("Wild Rampage", 40);
                DamageTags.Add("Flurry Wild Rampage", 41);//I think only pets can do this?
                DamageTags.Add("Critical Wild Rampage", 42);//I think only pets can do this?
                DamageTags.Add("Lucky Critical Wild Rampage", 43);//I think only pets can do this?
                DamageTags.Add("Flurry Critical Wild Rampage", 44);//I think only pets can do this?
                DamageTags.Add("Flurry Lucky Critical Wild Rampage", 45);//I think only pets can do this?
                DamageTags.Add("Lucky", 100);//Bug, shouldn't happen on live.
                DamageTags.Add("Lucky Rampage", 100);//Bug, shouldn't happen on live.
                DamageTags.Add("Lucky Wild Rampage", 100);//Bug, shouldn't happen on live.
  18. nodontcarekkthxbye Augur

    Is gameparse messed up for TLP servers, too?
  19. Mahlhavoc New Member

    Thanks for what your doing... I am really excited to see it in action!
    I_Love_My_Bandwidth likes this.
  20. Zanarnar Augur

    Yes. Since all servers use the same codebase, when they updated the live servers to include the new messages (lucky ones, crits, etc) it cause GamParse to miss all those lines since they no longer match the regex (or however hes checking the lines to see how to handle them).
Thread Status:
Not open for further replies.