Comments (12)
I've raised a PR for this here: #328
from demofile.
No, this won't trigger anti cheat detection. Demos are buffered in memory for a few minutes before they're flushed to disk. So what's on disk is always a few minutes behind what's actually happening in the match. Valve thought of this :)
from demofile.
This will imminently be released as v2.5.0. Considering Node v12 will be end-of-life by April, I've decided to drop support for it. This library now requires Node v14+.
I've also updated the examples to use the streaming interface and it's tested as part of CI.
Apologies for the slow turnaround on this ticket!
from demofile.
HLTV streams are already delayed for precisely the same reason. There is no delay added by this library though.
from demofile.
Great idea. I don't think it's going to be particularly simple to implement though. At the moment the library expects the whole demo to be available in the buffer.
We'd need to make it aware that if the rest of the file isn't available, to hang back until we get more data in the stream.
from demofile.
You're right, I read through the code and realize that demofile depends on binary-parser
, which does not support streams. There's an outstanding ticket keichi/binary-parser#40 for that, but the project in general looks pretty inactive to me so I won't hold my breath.
Feel free to close the ticket or keep it open if you intend to implement this in the future.
from demofile.
There are some newer binary parsers, or someone could fork and update the keichi parser to support streams, if someone ever really wants this.
I found this one in a quick search too: https://github.com/Pupix/binary-buffer-parser
from demofile.
We'd just need to buffer enough until we had enough data to parse a tick, there isn't really any need to use a different binary parser.
from demofile.
As an easy win, maybe we could expose some controls over the parsing process via demofile.pause() / demofile.resume()
methods? This way it would be possible to tell the library to wait until there's a new chunk of buffer available.
from demofile.
will this trigger anti cheat attention?
from demofile.
I'm having a reproducible issue with Node v12 on that PR. For some reason the stream is ending early, just after parsing the header. Does anybody have any ideas? It works fine on Node v14 and I can't reproduce the issue on my local Linux VM with Node v12 either.
from demofile.
No, this won't trigger anti cheat detection. Demos are buffered in memory for a few minutes before they're flushed to disk. So what's on disk is always a few minutes behind what's actually happening in the match. Valve thought of this :)
Sorry if this is not the place to ask, but does this mean the demoparser itself is a few minutes behind as well, or is it able to parse the game in real time? (as in at the same time as its livestream)
from demofile.
Related Issues (20)
- Missed Examples in Documentation HOT 1
- Valve Matchmaking Encrypted Chat HOT 6
- trouble while complie dumpfile.ts HOT 2
- Some Player Stats did not appear
- Illegal offset HOT 2
- error TS2532: Object is possibly 'undefined' HOT 1
- Documentation missing properties HOT 2
- Some demos missing `round_announce_match_start` HOT 3
- Wrong parse streams with transformation HOT 1
- Game event buytime_ended triggers only once HOT 3
- Is it possible to find out the skin of a weapon? HOT 1
- GOTV+ Broadcasting HOT 13
- demo.teams[0] `members` property is always empty HOT 1
- Events not firing
- itemPurchase Event - Cost HOT 1
- ServerRankUpdate doesnt work anymore HOT 3
- Is it possible to get the colors (blue, green, orange, yellow, purple) from players?
- isAlive not always working HOT 1
- Will this work with new Counter Strike 2? HOT 1
- m_iMatchStats_Deaths not sorted properly HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from demofile.