akiver / cs-demo-manager Goto Github PK
View Code? Open in Web Editor NEWCompanion application for your Counter-Strike demos.
Home Page: https://cs-demo-manager.com
License: MIT License
Companion application for your Counter-Strike demos.
Home Page: https://cs-demo-manager.com
License: MIT License
Why CS:GODM always start CS:GO in windowed mode, 4:3 aspect ration and with 1024x768 resolution? Also can it start CS:GO with parameters which i enter for the game in Steam library (-threads 4 -freq 60 etc.)?
When starting the application, it refreshes my demo's and crashes.
Here's the stacktrace from the Windows Event Viewer:
Application: CSGODemosManager.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ArgumentOutOfRangeException
Stack:
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c__DisplayClass2.<ThrowAsync>b__3(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
at System.Windows.Application.RunDispatcher(System.Object)
at System.Windows.Application.RunInternal(System.Windows.Window)
at CSGO_Demos_Manager.App.Main()
An option would be fine, so you can track all players you encountered if they get VAC/Game banned.
Rescan all demo files and add players to suspect list and automatically add players from new demo.
I have a huge mm demo archive and every time I switch player there is a extremely long wait while their rank is updated. Since I don't really care about ranks, can you let us disable this process?
Also, during the search memory usage goes from 500MB to upwards of 1300MB for me. Checking against about 550 demos if that helps.
So, loading demos takes about 40 sec on my system, and I only have about 50 demos.
The reason why I keep them is so I can see my stats improve (or not :)) over time.
A suggestion, when a demo has been analyzed, could csgo-manager maybe keep the stats from the demo in a database? - Ofcourse the details for a replay will be lost, but keep the information only for the "Account stats" (CTRL + E) page would be nice.
I don't know what happened, but the "Status" column seems to be broken since the 2.2.0 update. I upgraded to 2.2.0, exported my custom settings as part of that upgrade, imported them back in, re-analyzed all of the non-POV demos I have, and the status column is really blank now. I used to have tons of these cells filled in for the same demos before the upgrade (with maybe the odd blank for a game that was surrendered or I was kicked from), but now, for something around 150 demos, I might have 5 of them filled in with win/loss after analyzing.
I updated sources and compiled the project first, then analyzed some games and after analysis finished, "Searching account's last rank" appear on top and never hide. Even the "Stop" button doesn't work...
Could be great to have a rounds "timeline" like this http://cevo.com/hub/csgo/pug/111639/ showing on two lines the winner of each round with icons following the reason of the round end.
With tooltip or number on each showing the number of player alive left is a plus.
First I analyze a demo without steam_api_key, the demo is in "not analyzable" status.
The I set my steam_api_key, analyze the demo again but the status doesn't reset to "None" and the line stay red in the table.
Let's say I want to see how many wins/losses i have since I am an eagle. I should go to details to each demo, because I don't know if I'm on team 1 or team 2. Then I need to see which team is the winner just to determine if I won the match. And I have to do this for 30 demos for example. It's a simple but very useful feature in my opinion.
What folders/files do I have to delete so my user settings are completely deleted and not applied when I uninstall and then reinstall the demo manager?
I changed the Folder Directory to my replay Folder where i have 655 Demos now the Demo Manager crashes everytime and wont respond. Any Solutions?
16GB Ram. Windows 7 64bit
Demo Manager 64bit.
How about adding ESEA's RWS along side the HLTV Rating?
https://play.esea.net/index.php?s=support&d=faq&id=212
It's a bit different as it is calculated per round that is won. Basically, when a team wins a round, 100 Win Shares are divided up based on how much damager was given for each player that round. I think it's a good alternative to the HLTV Rating, which can be inflated by lower impact frags (e.g. exit frags).
Somehow it messes up the status of some demos. Some demos are shown as "win", although they are not, and with others it shows "lose" although it's a win.
In the details tab it shows the players in the wrong teams or shows the same team name for both teams.
With the second latest version I could fix this by changing the source to "ebot", but now this doesn't fix the problem anymore with the latest version.
I have 2 folders, one a demo archive with all my demos from the last 4 months, the other just the most recent ~30 matches still in the csgo/replays folder.
The total matches played count on the stats view equals those numbers combined which means those ~30 demos are being counted twice.
Please give us the option to limit the stats to just the selected folder!
Steps to reproduce :
Put a exception there please
The latest update is causing incorrect kill totals to be reported when analysing demos from my server. Probably related to the knife round not being culled.
Demo link: https://dl.dropboxusercontent.com/u/30829668/CSGO/pug_de_cache_2015-09-29_20.dem
Someone on reddit reported this error causing the app crash :
13/06/2015 23:01: Object reference not set to an instance of an object. StackTrace: at CSGODemos_Manager.Services.Analyzer.DemoAnalyzer.<>cDisplayClass92_0.b0(PlayerExtended p) at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable1 source, Func2 predicate) at CSGO_Demos_Manager.Services.Analyzer.DemoAnalyzer.HandleBombExploded(Object sender, BombEventArgs e) at DemoInfo.DP.Handler.GameEventHandler.Apply(GameEvent rawEvent, DemoParser parser) at DemoInfo.GameEvent.Parse(IBitStream bitstream, DemoParser parser) at DemoInfo.DP.DemoPacketParser.ParsePacket(IBitStream bitstream, DemoParser demo) at DemoInfo.DemoParser.ParseTick() at DemoInfo.DemoParser.ParseNextTick() at DemoInfo.DemoParser.ParseToEnd() at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at CSGO_Demos_Manager.Services.Analyzer.ValveAnalyzer.d2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at CSGO_Demos_Manager.Services.DemosService.d_3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at CSGODemos_Manager.ViewModel.HomeViewModel.d_159.MoveNext()
All data available here : https://www.sostronk.com/blog/impact-rating-feature-announcement
Since the last update of Faceit, it seems something in the demo file changed : the demo header seems wrong or at least has changed (duration always 00:00:00, no tick nor framerate information) and all demo are triggering error at the end of the analysis, here is stacktrace :
14/06/2015 13:56: Attempted to read past the end of the stream.
StackTrace:
at DemoInfo.BitStreamImpl.UnsafeBitStream.RefillBuffer()
at DemoInfo.BitStreamImpl.UnsafeBitStream.ReadByte()
at DemoInfo.DemoParser.ParseTick()
at DemoInfo.DemoParser.ParseNextTick()
at DemoInfo.DemoParser.ParseToEnd()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at CSGO_Demos_Manager.Services.Analyzer.EbotAnalyzer.<AnalyzeDemoAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at CSGO_Demos_Manager.Services.DemosService.<AnalyzeDemo>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at CSGO_Demos_Manager.ViewModel.HomeViewModel.<RefreshSelectedDemos>d__159.MoveNext()
Should be really cool to see that sort of statistics to know how we improve in the game.
We select 1 or multiple periods of time or the number of last demos we want and get stats for these periods.
These data could be used to draw graph : win/lose, rating, kdr, hsr, entry kills, weapons kill rate, maps win/lose rate.
Some information about a demo is unnecessary for me, so it takes up a lot of space.
So an option to disable "Hostname", "Type", "Client", .. would be nice.
Also when re-sizing these tables, they do not save for the next time you open the program.
Add colors to the team half- and full-time scores to more easily show if the score happened on T or CT side.
Implement the possibility to add multiple SteamId and select which one is in use.
If I select a demo and click Details, when I'm done reviewing that info and I click Back to go back to the main view, it no longer has the selection I started with. It would be good to maintain that selection so it's easier for me to keep my "train of thought".
Add a kill matrix for each demo.
Should be in the "Kill" page I think.
When sorting by date, the month value is used instead of day value.
Whenever you choose a new account to check stats for, the process of looking through the demos to see its most recent rank can take several seconds (or much more if you have a lot of demos). Adding an option to skip the process would be a good solution (ignoring the ranks), since a lot of people don't care what their rank is, and just want the stats :)
With the show only my stats option, it would be awesome to be able to add multiple accounts that you have, so it always works regardless of which account demos were created on. There should never be two of the specified IDs in the same game, so the analysis should still work similarly.
Could be great to have a new column with the HLTV rating for each player in "Detail" scoreboard. All necessary infos are already known so it should be easy to implement.
Here is the formula : http://www.hltv.org/?pageid=242&eventid=0
When analyzing, the side of the winner (CT/T) is correctly set.
If we restart the program, the side is wrong.
I think JsonProperty is set on wrong Property.
Should be :
[JsonProperty("winner")]
public Team Winner
Instead of :
[JsonProperty("winner")]
public string WinnerAsString
Can you confirm and fix @akiver ? Thx
Having just updated to 2.2.1, I'm reanalysing ~500 demos I've archived. This takes around 40 minutes and only runs on one core. Could we have the option to analyse demos in parallel?
Here are some screenshots showing what happened.
I got an HE kill but it isn't showing on the overall stats screen. Should I put the demo somewhere or can I dig into any other state to help investigate why this is happening?
The addition of see what people are vac-banned on scoreboards was wonderful. Can we have an option to go to the match we played against a player on suspect list? Or a list if there was more than I match?
I use to order that list by DSLB so I would like to see when I played with/against that person.
Right now, it doesn't show status if the game was surrender.
Special mark should be added to clearly see game was surrender.
Hello! CSGO Demos Manager starts CS:GO process every time when I press "watch demo" or "watch round" even if CSGO already started. Can CSGODM play demo in already started csgo process?
It should have a distinctive mark on lines where demos went into error when parsed.
Fill the line background with red or add a little icon in the first row of the table so we could easily see which demos are in a "wrong" state.
Hello, demos manager is a very useful tool. But as I need to write .vdm scripts for demos, could you add the information about how many ticks total in a current demo file into the info page or into the main table?
I currently have a vacban and every demo shows red with ban. Can you possibly have an exclude list to not show as a banned player in demo. makes it hard to find other banned players
WORK IN PROGRESS (already done, need to pull request)
Add a new column telling if the user won/lost/draw the game
the user = the SteamID set in the application settings
Would be nice if you can see the comments in the table view so its easier to search for specific ones.
My CSGO installed on my SSD and my replays took too much space so I moved them to HDD in safe place. I would really like if you could add custom folders feature in your tool, cuz my replays folder size now compared to whole CSGO game itself.
In demo details page ticks of start of rounds determine not correctly. If I press "watch demo" demo plaing not from start of round. For example, it plays from 34429 tick but round starts at 30244 tick (tick from demoui).
I would like to be able to make more granular selections with the heatmap. Currently you can select only a single round or all of them, a side/both or a player and what type of event.
I'd like to create heatmaps of a specific player on a specific side (first/second half), or even a range of rounds (ecos/full buys/other).
It would also be nice to select several players instead of just one to see how a group of players working together died.
This last part isn't as important, but it would be interesting if once could get the program to identify trades and make heatmaps of where those happened. It would probably be inaccurate, but it could give some important insight for a demo.
I'm doing an analysis of ~1000 rounds right now, and it is very time-consuming to click each round tab and copy/paste it into excel. Could you make it so that the export function also includes the particular round stats? (Who killed who on each round, the starting and inventory value for the round, etc.) It wouldn't take much time to do on your end, probably would just involve making your final variables in each class static and then calling them from your xml writing function. I don't know C# though, so I can't do it myself.
If you decide to do it, thanks!
Currently, you can go into each match individually and export the match data to an Excel sheet. It would be a very nice feature to be able to do this for all demos at once, either as separate files per match or as one large combined file. This would allow you to analyze the raw data however you want with statistical applications or straight up programming.
One can't design a GUI that allows someone to extract any kind of data or correlations they could possibly want. Let's say I want to know how many games on Mirage I top fragged. Or bottom. Or middle. Or let's say I want to know how many games I top fragged when the other team had a smurf by some definition (e.g. really high KDR compared to the rest). Or let's say I want to know how much better/worse I do playing with a certain Steam friend.
The possibilities are endless if you have access to all the raw data!
Add global statistics of the user (win/lose/draw ratio, kd ratio, hs ratio, avg rating, ...) in the main page.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.