Krappa322 / arcdps_healing_stats

An addon for ArcDPS that shows personal healing stats
MIT License
61 stars 7 forks source link

Does this support barrier? #31

Open John-Dean opened 1 year ago

John-Dean commented 1 year ago

With Specter becoming more popular, is there any way of showing total healing with barrier?

I don't think barrier is shown from my first look, but it shown in the combat log "You grant barier for using ".

Krappa322 commented 1 year ago

Barrier is logged to the evtc log but is not shown live. At this time I don't have the interest personally to add it to the live window but will gladly accept pull requests :)

John-Dean commented 1 year ago

I'll take a look at this when I get time, you're saying it's already sent to the EVTC RPC server feed too?

Krappa322 commented 1 year ago

Yes, it should be sent even when budget mode is enabled. Without budget mode all local events are sent over evtc rpc. The filtering for whats sent over wire is at https://github.com/Krappa322/arcdps_healing_stats/blob/master/networking/Client.cpp#L173. I'm quite sure that GetEventType will categorize shields as EventType::Healing but you might want to confirm that

The filtering for the live display that's excluding shields is at https://github.com/Krappa322/arcdps_healing_stats/blob/master/src/EventProcessor.cpp#L412 and https://github.com/Krappa322/arcdps_healing_stats/blob/master/src/EventProcessor.cpp#L554 (happens after logging, so that they are put into the logs)

John-Dean commented 1 year ago

Thanks! Had no idea it was already being sent, hence the issue log (as if it wasn't being sent it would be hard to test). I can work with this when I get some time and get this amended.

John-Dean commented 1 year ago

Apologies for the barrage of comments, when I try to build from source I get the following error, specifically when building the networking project. image image

Do you know what could be causing this?

Krappa322 commented 1 year ago

Do you have python installed? https://github.com/Krappa322/arcdps_healing_stats/blob/master/networking/build_proto.py is the script that needs to pass

It's also possible that it doesn't properly download grpc and protobuf first - you can try to selectively build the "vcpkg_install_dependencies" project first and then build the whole solution

John-Dean commented 1 year ago

I've already built vcpkg_install_dependencies first, and I do have python installed. I've also gone into that python file and made sure it all points at the right files, and it's still outputting returncode 1, which is odd.

Krappa322 commented 1 year ago

Are you able to execute it directly?

...\arcdps_personal_stats\networking>python build_proto.py x64-windows-static\x64-windows evtc_rpc.proto ..\x64\autogen
John-Dean commented 1 year ago

Found the issue output_path (line 10 of the python file) can't have a space in it. That causes everything to fail. So basically where you pull the repo to can't have a space in the path.

I just syslinked to remove the space and the network project compiles fine. Testing the rest now

Krappa322 commented 1 year ago

Ah! Sorry about that, that custom build task probably needs quoting around the arguments...

John-Dean commented 1 year ago

Okay that left me with two errors:

First one, I've fixed: image

Effectively rand_t was being referenced on line 16 before it had been declared, moving them the other way around removes the error: image

That leaves me with 1 error (3 times): image

Which relates to: image

in core.h

I can't tell what the issue is here at a glance.

Krappa322 commented 1 year ago

What version of visual studio are you using? I'm using 2022 Version 17.2.4 right now and that works

Unfortunately fmtlib constantly breaks from runtime/visual studio updates. Not sure if fmtlib or MSVC are the ones we should be mad at about that but yeah, it sucks either case.

I think that compile error is from an invalid format string. I'd help you if I could reproduce it but yeah, it builds just fine on my machine

John-Dean commented 1 year ago

image

Microsoft Visual Studio Community 2022 Version 17.5.1 VisualStudio.17.Release/17.5.1+33424.131 Microsoft .NET Framework Version 4.8.09032

Installed Version: Community

Visual C++ 2022 00482-90000-00000-AA498 Microsoft Visual C++ 2022

ASP.NET and Web Tools 17.5.317.37931 ASP.NET and Web Tools

Azure App Service Tools v3.0.0 17.5.317.37931 Azure App Service Tools v3.0.0

C# Tools 4.5.0-6.23123.11+271ccd71554f7d28d2f90551aafd0bdeb5d327aa C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Common Azure Tools 1.10 Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.

Cookiecutter 17.0.22336.2 Provides tools for finding, instantiating and customizing templates in cookiecutter format.

Microsoft JVM Debugger 1.0 Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines

Node.js Tools 1.5.50105.3 Commit Hash:882de61a7c99ae988d4c62029301292a3e0b1d56 Adds support for developing and debugging Node.js apps in Visual Studio

NuGet Package Manager 6.5.0 NuGet Package Manager in Visual Studio. For more information about NuGet, visit https://docs.nuget.org/

Python - Django support 17.0.22336.2 Provides templates and integration for the Django web framework.

Python - Profiling support 17.0.22336.2 Profiling support for Python projects.

Python with Pylance 17.0.22336.2 Provides IntelliSense, projects, templates, debugging, interactive windows, and other support for Python developers.

Razor (ASP.NET Core) 17.5.2.2307502+8b3141d86b738daf2ca3ed9c15b12513071fc676 Provides languages services for ASP.NET Core Razor.

SQL Server Data Tools 17.2.40118.0 Microsoft SQL Server Data Tools

Test Adapter for Boost.Test 1.0 Enables Visual Studio's testing tools with unit tests written for Boost.Test. The use terms and Third Party Notices are available in the extension installation directory.

Test Adapter for Google Test 1.0 Enables Visual Studio's testing tools with unit tests written for Google Test. The use terms and Third Party Notices are available in the extension installation directory.

TypeScript Tools 17.0.20105.2003 TypeScript Tools for Microsoft Visual Studio

Visual Basic Tools 4.5.0-6.23123.11+271ccd71554f7d28d2f90551aafd0bdeb5d327aa Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Visual F# Tools 17.5.0-beta.23053.5+794b7c259d9646a7eb685dad865aa27da7940a21 Microsoft Visual F# Tools

Visual Studio IntelliCode 2.2 AI-assisted development for Visual Studio.

John-Dean commented 1 year ago

I can try downgrade to 17.2.4?

Krappa322 commented 1 year ago

I'll try deleting all my vcpkg cache and get new fmtlib and see if I can reproduce it

John-Dean commented 1 year ago

I don't think I can downgrade community edition, and I can't find a 17.2.4 installer online

John-Dean commented 1 year ago

It might be fixed in 17.6 if it's the same bug as https://developercommunity.visualstudio.com/t/Code-using-fmtlib-format-breaks-after-Vi/10198870

John-Dean commented 1 year ago

Issue is present for me on 17.6.3 (current version), rolling back to my previous version

John-Dean commented 1 year ago

So I managed to downgrade to 17.2.16: image

Get the following errors when compiling arcdps_personal_stats_lib: image

John-Dean commented 1 year ago

Okay got it to compile.

If I roll back to this vcpkg commit: https://github.com/microsoft/vcpkg/commit/e2213266cd4d36787e67fd8fb1fa861cbf7ac3eb

I can get a compile going (git checkout c221326), which aligns with fmt 8.1.1: https://github.com/fmtlib/fmt/releases

fmt 9.0.0, 9.1.0 and 10.0.0 are both broken when compiling, and I've tested that on VS Code 17.2.16, 17.6.3 and 17.7 (pre-release).

I think you can update the vcpkg config to enable versioning: https://devblogs.microsoft.com/cppblog/take-control-of-your-vcpkg-dependencies-with-versioning-support/

Swapping the json file to

{
  "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
  "name": "arcdps-personal-stats",
  "version-string": "2.2rc2",
  "dependencies": [
    "cpr",
    "grpc",
    "gtest",
    "nlohmann-json",
    "prometheus-cpp",
    "spdlog"
  ],
  "overrides": [
    {
      "name": "fmt",
      "version": "8.1.1"
    }
  ],
  "builtin-baseline": "e2213266cd4d36787e67fd8fb1fa861cbf7ac3eb"
}

does seem to fix it

Krappa322 commented 1 year ago

Sorry for taking long to get back to you, busy life

Yeah I noticed that it's because of the fmt version as well. I tried with versioning but the version of vcpkg I had was before they introduced that feature. In any case, I'll update it now and make it compile, then as you mentioned pinning the version sounds like a great idea

Krappa322 commented 1 year ago

I just pushed 0c4e1a06dfb4738bfd507778b95a80d17ca9523e, that should cover everything. Note that arcdps-extension was updated so you'll have to recursively fetch to get that update as well

John-Dean commented 1 year ago

No need to apologise!

I've already done a pull request here before seeing your reply: #33

Not the best way of implementing it, but it is working for me to do it that way. As far as I can tell the filtering on the windows doesn't have the ability to see the actual healing events(?) in which case you can't selectively filter out barrier/healing without a more extensive code change.

HelionQc commented 1 month ago

I have a request !

With barrier been a great source of healing. Many class can AoE Gave it and a relic as well. In WvW, with 5-50 man in a squad, having proper stat for barrier would be great !

Is it possible to have the barrier with in total and/or peers outgoing in the meter in Arc DPS :)

and also, One slot for Barrier directly like the 6th

(additional request, color per class to help out visually and to match with Arc dps other panel)

punsii2 commented 2 weeks ago

@HelionQc : You should probably open a new issue for your request and mention this one as related. Either way i think the likelihood of someone working on this are unfortunately really low at the moment :(