-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakestatsdb.pl
101 lines (92 loc) · 2.39 KB
/
makestatsdb.pl
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# Imago <[email protected]>
## Creates the tables to store data
use strict;
use DBI;
unlink 'stats.db';
my $dbfile = "stats.db";
our $dbh = DBI->connect("dbi:SQLite:dbname=$dbfile","","");
CreateStatsTables();
CreateParamsTable();
$dbh->disconnect;
exit 0;
sub CreateParamsTable() {
$dbh->do(qq{CREATE TABLE MissionParams (
mpid INTEGER PRIMARY KEY,
gid INTEGER,
JSON TEXT;});
return;
}
sub CreateStatsTables() {
$dbh->do(qq{CREATE TABLE GameResults (
gid INTEGER PRIMARY KEY,
szGameID VARCHAR(18),
szName VARCHAR(65),
szWinningTeam VARCHAR(21),
nWinningTeamID INTEGER,
bIsGoalConquest BOOLEAN,
bIsGoalCountdown BOOLEAN,
bIsGoalTeamKills BOOLEAN,
bIsGoalProsperity BOOLEAN,
bIsGoalArtifacts BOOLEAN,
bIsGoalFlags BOOLEAN,
nGoalConquest INTEGER,
nGoalCountdown INTEGER,
nGoalTeamKills INTEGER,
fGoalProsperity FLOAT,
nGoalArtifacts INTEGER,
nGoalFlags INTEGER,
nDuration INTEGER,
timeEnter DATE);});
$dbh->do(qq{CREATE TRIGGER insert_GameResults_timeEnter AFTER INSERT ON GameResults BEGIN UPDATE GameResults SET timeEnter = DATETIME('NOW') WHERE rowid = new.rowid; END;});
$dbh->do(qq{CREATE TABLE TeamResults (
tid INTEGER PRIMARY KEY,
gid INTEGER,
szGameID VARCHAR(18),
nTeamID INTEGER,
szName VARCHAR(25),
szTechs VARCHAR(101),
nCivID INTEGER,
cPlayerKills INTEGER,
cBaseKills INTEGER,
cBaseCaptures INTEGER,
cDeaths INTEGER,
cEjections INTEGER,
cFlags INTEGER,
cArtifacts INTEGER,
nConquestPercent INTEGER,
nProsperityPercentBought INTEGER,
nProsperityPercentComplete INTEGER,
nTimeEndured INTEGER);});
$dbh->do(qq{CREATE TABLE PlayerResults (
pid INTEGER PRIMARY KEY,
gid INTEGER,
szGameID VARCHAR(18),
nTeamID INTEGER,
szName VARCHAR(32),
cPlayerKills INTEGER,
cBuilderKills INTEGER,
cLayerKills INTEGER,
cMinerKills INTEGER,
cBaseKills INTEGER,
cBaseCaptures INTEGER,
cPilotBaseKills INTEGER,
cPilotBaseCaptures INTEGER,
cDeaths INTEGER,
cEjections INTEGER,
cRescues INTEGER,
cFlags INTEGER,
cArtifacts INTEGER,
cTechsRecovered INTEGER,
cAlephsSpotted INTEGER,
cAsteroidsSpotted INTEGER,
fCombatRating FLOAT,
fScore FLOAT,
nTimePlayed INTEGER,
nTimeCmd INTEGER,
bWin BOOLEAN,
bLose BOOLEAN,
bWinCmd BOOLEAN,
bLoseCmd BOOLEAN,
CharacterID INTEGER);});
return;
}