andrewda / hltv-livescore

A Node.js wrapper for the HLTV scorebot
MIT License
71 stars 8 forks source link

Real round detection #19

Open andrewda opened 8 years ago

andrewda commented 8 years ago

We need to be able to detect if the current round is "real" or not. There are some key characteristics to "fake"/warmup rounds.

When the score is 0-0, pistols are not the only thing being used.

If this is the case, we can plainly say that all future rounds are fake until a reset.

All players have $16k

Not sure if this is always true, but seemed to be true in at least one ESEA game.

No team switch after 15 rounds

Again, not sure if this is always the case, but looks like it is at least in the ESL Pro League.

Round number is 31 (see @mrwhale's data below)

It seems that rounds numbered 31 are "warmups". We might want to check to see if the round that came before the current round was 30, and if it wasn't, add a fakeRound param.

mrwhale commented 8 years ago

I have also noticed, especially in 3 map games, that hltv seems to send "31" as the round number for rounds in a break. This of course doesnt help when you only have a 1 map game so never reach that high.

Example output of what I mean, from one of today's matches. After 15 rounds (round number 44) the next round number sent was 31, and always seems to reset back to 31 during these half time shenanigans

Round 38 Start
HEN1- killed mixwell with awp  (5 vs 4)
RUSH killed HEN1- with ak47  (4 vs 4)
felpera killed stanislaw with awp  (4 vs 3)
boltzz killed RUSH with m4a1  (4 vs 2)
boltzz killed tarik with m4a1 (headshot) (4 vs 1)
boltzz killed NAF-FLY with m4a1  (4 vs 0)
Round over. Winner - CT (2-7) CTs_Win

Round 39 Start
stanislaw killed boltzz with tec9 (headshot) (4 vs 5)
HEN1- killed stanislaw with awp  (4 vs 4)
tarik killed LUCAS1 with tec9  (3 vs 4)
Bomb has been planted. By RUSH
mixwell killed zews with tec9 (headshot) (2 vs 4)
Round over. Winner - T (3-7) Target_Bombed

Round 40 Start
NAF-FLY killed LUCAS1 with ak47 (headshot) (4 vs 5)
NAF-FLY killed zews with ak47 (headshot) (3 vs 5)
boltzz killed NAF-FLY with fiveseven  (3 vs 4)
mixwell killed boltzz with mag7  (2 vs 4)
felpera killed mixwell with awp  (2 vs 3)
HEN1- killed RUSH with awp  (2 vs 2)
HEN1- killed tarik with awp  (2 vs 1)
felpera killed stanislaw with fiveseven  (2 vs 0)
Round over. Winner - CT (3-8) CTs_Win

Round 41 Start
felpera killed NAF-FLY with awp  (5 vs 4)
stanislaw killed felpera with tec9  (4 vs 4)
LUCAS1 killed RUSH with m4a1 (headshot) (4 vs 3)
LUCAS1 killed stanislaw with m4a1  (4 vs 2)
tarik killed zews with tec9 (headshot) (3 vs 2)
mixwell killed LUCAS1 with ak47 (headshot) (2 vs 2)
boltzz killed tarik with famas  (2 vs 1)
boltzz killed mixwell with famas  (2 vs 0)
Round over. Winner - CT (3-9) CTs_Win

Round 42 Start
LUCAS1 killed NAF-FLY with m4a1  (5 vs 4)
LUCAS1 killed mixwell with m4a1 (headshot) (5 vs 3)
LUCAS1 killed stanislaw with m4a1  (5 vs 2)
zews killed RUSH with mag7 (headshot) (5 vs 1)
felpera killed tarik with m4a1  (5 vs 0)
Round over. Winner - CT (3-10) CTs_Win

Round 43 Start
HEN1- killed tarik with awp  (5 vs 4)
HEN1- killed RUSH with awp  (5 vs 3)
HEN1- killed mixwell with awp  (5 vs 2)
HEN1- killed NAF-FLY with awp  (5 vs 1)
LUCAS1 killed stanislaw with m4a1 (headshot) (5 vs 0)
Round over. Winner - CT (3-11) CTs_Win

Round 44 Start
LUCAS1 killed mixwell with m4a1  (5 vs 4)
LUCAS1 killed RUSH with m4a1 (headshot) (5 vs 3)
tarik killed LUCAS1 with tec9  (4 vs 3)
HEN1- killed tarik with awp  (4 vs 2)
felpera killed NAF-FLY with m4a1  (4 vs 1)
boltzz killed stanislaw with ak47  (4 vs 0)
Round over. Winner - CT (3-12) CTs_Win

Round 31 Start
RUSH killed stanislaw with ak47 (headshot) (5 vs 4)
RUSH killed mixwell with ak47 (headshot) (5 vs 3)
RUSH killed NAF-FLY with ak47 (headshot) (5 vs 2)
RUSH killed tarik with ak47 (headshot) (5 vs 1)
RUSH killed HEN1- with ak47  (4 vs 1)
RUSH killed LUCAS1 with ak47  (3 vs 1)
felpera killed RUSH with m4a1  (3 vs 0)
Round over. Winner - CT (0-1) CTs_Win

Round 31 Start
RUSH killed HEN1- with tec9  (4 vs 5)
RUSH killed boltzz with m4a1  (3 vs 5)
RUSH killed zews with m4a1  (2 vs 5)
mixwell killed LUCAS1 with ak47 (headshot) (1 vs 5)
felpera killed NAF-FLY with m4a1 (headshot) (1 vs 4)
felpera killed tarik with m4a1 (headshot) (1 vs 3)
Round over. Winner - CT (0-2) Target_Saved

Round 32 Start
stanislaw killed zews with awp (headshot) (4 vs 5)
RUSH killed LUCAS1 with tec9  (3 vs 5)
mixwell killed felpera with ak47  (2 vs 5)
RUSH killed HEN1- with tec9 (headshot) (1 vs 5)
boltzz killed RUSH with m4a1 (headshot) (1 vs 4)
stanislaw killed boltzz with awp  (0 vs 4)
Round over. Winner - T (1-2) Terrorists_Win

Round 31 Start
mixwell killed LUCAS1 with ak47  (4 vs 5)
zews killed tarik with awp  (4 vs 4)
felpera killed mixwell with inferno  (4 vs 3)
zews killed RUSH with awp  (4 vs 2)
zews killed NAF-FLY with awp  (4 vs 1)
felpera killed stanislaw with m4a1  (4 vs 0)
Round over. Winner - CT (0-1) CTs_Win
andrewda commented 8 years ago

@mrwhale hmm very interesting - thanks! I'll do some more testing with this tomorrow.