Skip to content

Commit 11dd3de

Browse files
authored
Merge pull request #537 from BestAwperEver/playerConnect-set-raw-player
workaround for `userid` in `player_connect`
2 parents 83e98ac + 919a289 commit 11dd3de

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

pkg/demoinfocs/game_events.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package demoinfocs
22

33
import (
44
"fmt"
5+
"math"
56

67
"github.com/golang/geo/r3"
78
"github.com/markus-wa/go-unassert"
@@ -641,10 +642,6 @@ func (geh gameEventHandler) HostageRescuedAll(map[string]*msg.CSVCMsg_GameEventK
641642
}
642643

643644
func (geh gameEventHandler) playerConnect(data map[string]*msg.CSVCMsg_GameEventKeyT) {
644-
if geh.parser.isSource2() {
645-
return
646-
}
647-
648645
pl := common.PlayerInfo{
649646
UserID: int(data["userid"].GetValShort()),
650647
Name: data["name"].GetValString(),
@@ -662,7 +659,17 @@ func (geh gameEventHandler) playerConnect(data map[string]*msg.CSVCMsg_GameEvent
662659
}
663660
}
664661

665-
geh.parser.setRawPlayer(int(data["index"].GetValByte()), pl)
662+
var playerIndex int
663+
if geh.parser.isSource2() {
664+
playerIndex = pl.UserID
665+
if !pl.IsFakePlayer && !pl.IsHltv && pl.XUID > 0 && pl.UserID <= math.MaxUint8 {
666+
pl.UserID |= math.MaxUint8 << 8
667+
}
668+
} else {
669+
playerIndex = int(data["index"].GetValByte())
670+
}
671+
672+
geh.parser.setRawPlayer(playerIndex, pl)
666673
}
667674

668675
func (geh gameEventHandler) playerDisconnect(data map[string]*msg.CSVCMsg_GameEventKeyT) {

0 commit comments

Comments
 (0)