Comments (3)
I've cross-checked with some of the demos I have locally and I can reproduce this issue. I don't think it's an issue with the parser - some events just don't seem to be recorded correctly in demos. Instead you can add up every player's freezeTimeEndEquipmentValue
at the end of each round, like so:
demoFile.gameEvents.on("round_end", e => {
let tValue = 0;
let ctValue = 0;
for (const player of demoFile.players) {
if (player.teamNumber == TeamNumber.Terrorists) {
tValue += player.freezeTimeEndEquipmentValue;
} else {
ctValue += player.freezeTimeEndEquipmentValue;
}
}
console.log(
`End of round #${demoFile.gameRules.roundsPlayed} in ${demoFile.gameRules.phase}:`
);
console.log(` - Terrorist: \$${tValue}`);
console.log(` - Counter-Terrorist: \$${ctValue}`);
});
Let me know if that doesn't work for you can I'll re-open.
from demofile.
Thank you @saul for checking and confirming the problem.
Unfortunately the freezeTimeEndEquipmentValue
does not work 100% of the time, because players sometimes buy after the freeze time is over. That is the reason I was going for the buytime_ended
event.
I will try to calculate the correct equipment in a different way then. Thanks again for checking and great work on this library 👍
from demofile.
Good point! Try this instead:
let buyTimeTicks = -1;
demoFile.conVars.on("change", e => {
if (e.name === "mp_buytime") {
const secs = parseInt(e.value);
buyTimeTicks = secs * demoFile.tickRate;
console.log(`Buy time is ${secs} secs (${buyTimeTicks} ticks)`);
}
});
let buyTimeEndTick = -1;
demoFile.on("tickend", e => {
if (buyTimeEndTick < 0 || demoFile.currentTick < buyTimeEndTick) return;
buyTimeEndTick = -1;
// Buy time has ended
let tValue = 0;
let ctValue = 0;
for (const player of demoFile.players) {
if (player.teamNumber == TeamNumber.Terrorists) {
tValue += player.currentEquipmentValue;
} else if (player.teamNumber == TeamNumber.CounterTerrorists) {
ctValue += player.currentEquipmentValue;
}
}
console.log(
`Buy time end round #${demoFile.gameRules.roundsPlayed} in ${demoFile.gameRules.phase}:`
);
console.log(` - Terrorist: \$${tValue}`);
console.log(` - Counter-Terrorist: \$${ctValue}`);
});
demoFile.gameEvents.on("round_start", e => {
if (buyTimeTicks >= 0) buyTimeEndTick = demoFile.currentTick + buyTimeTicks;
});
from demofile.
Related Issues (20)
- 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
- 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
- CS2 Demo Support 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.