/
UpdatePlayer.go
85 lines (67 loc) · 1.77 KB
/
UpdatePlayer.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package theater
import (
"strconv"
"github.com/OSHeroes/bfheroesFesl/inter/network"
"github.com/sirupsen/logrus"
)
type reqUPLA struct {
// TID=12
TID int `fesl:"TID"`
// GID=3
GameID int `fesl:"GID"`
// LID=1
LobbyID string `fesl:"LID"`
// PID=6
PlayerID int `fesl:"PID"`
clientID int `fesl:"P-cid"`
HostOwnerID int `fesl:"HMO"`
}
type reqUPLAKeys struct {
PlayerElo *string `fesl:"P-elo"`
PlayerKills *string `fesl:"P-kills"`
PlayerKit *string `fesl:"P-kit"`
PlayerLevel *string `fesl:"P-level"`
// P-ping=24
PlayerPing *int `fesl:"P-ping"`
PlayerScore *string `fesl:"P-score"`
PlayerTeam *string `fesl:"P-team"`
// P-time="1 min 10 sec "
PlayerPlayedTime *string `fesl:"P-time"`
PlayerClientID *string `fesl:"P-cid"`
PlayerDataCenter *string `fesl:"P-dc"`
PlayerIP *string `fesl:"P-ip"`
}
// Update Player
func (tM *Theater) UPLA(event network.EvProcess) {
logrus.Println("==========UPLA==========")
var args []interface{}
keys := 0
pid := event.Process.Msg["PID"]
gid := event.Process.Msg["GID"]
for index, value := range event.Process.Msg {
if index == "TID" || index == "PID" || index == "GID" {
continue
}
keys++
// Strip quotes
if len(value) > 0 && value[0] == '"' {
value = value[1:]
}
if len(value) > 0 && value[len(value)-1] == '"' {
value = value[:len(value)-1]
}
args = append(args, gid)
args = append(args, pid)
args = append(args, index)
args = append(args, value)
}
var err error
_, err = tM.db.setServerPlayerStatsStatement(keys).Exec(args...)
if err != nil {
logrus.Println("Failed to update stats for player "+pid, err.Error())
}
gdata := tM.level.NewObject("gdata", event.Process.Msg["GID"])
num, _ := strconv.Atoi(gdata.Get("AP"))
num++
gdata.Set("AP", strconv.Itoa(num))
}