-
Notifications
You must be signed in to change notification settings - Fork 22
/
bjstats.php
143 lines (118 loc) · 4.87 KB
/
bjstats.php
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<?php
//$_NO_COMPRESS = true; //== For pdq's improvements mods
//ob_start("ob_gzhandler");
require_once "include/bittorrent.php";
dbconn(false);
loggedinorreturn();
//$lang = array_merge( load_language('global') );
if ($CURUSER['class'] < UC_USER)
{
stderr("Sorry...", "You must be a Power User or above to play Blackjack.");
exit;
}
function begin_table2($fullwidth = false, $padding = 5)
{
$width = "";
if ($fullwidth)
$width .= " width=50%";
return ("<table class=\"main".$width."\" border=\"1\" cellspacing=\"0\" cellpadding=\"".$padding."\">");
}
function end_table2()
{
return ("</table>\n");
}
function begin_frame2($caption = "", $center = false, $padding = 10, $width="100%", $caption_center="left")
{
$tdextra = "";
if ($center)
$tdextra .= " align=\"center\"";
return(($caption ? "<h2 align=\"".$caption_center."\">".$caption."</h2>" : "") . "<table width=\"".$width."\" border=\"1\" cellspacing=\"0\" cellpadding=\"".$padding."\">" . "<tr><td class=\"text\" $tdextra>\n");
}
function end_frame2()
{
return("</td></tr></table>\n");
}
function bjtable($res, $frame_caption)
{
$htmlout='';
$htmlout .= begin_frame2($frame_caption, true);
$htmlout .= begin_table2();
$htmlout .="<tr>
<td class='colhead'>Rank</td>
<td class='colhead' align='left'>User</td>
<td class='colhead' align='right'>Wins</td>
<td class='colhead' align='right'>Losses</td>
<td class='colhead' align='right'>Games</td>
<td class='colhead' align='right'>Percentage</td>
<td class='colhead' align='right'>Win/Loss</td>
</tr>";
$num = 0;
while ($a = mysql_fetch_assoc($res))
{
++$num;
//==Calculate Win %
$win_perc = number_format(($a['wins'] / $a['games']) * 100, 1);
//==Add a user's +/- statistic
$plus_minus = $a['wins'] - $a['losses'];
if ($plus_minus >= 0)
{
$plus_minus = mksize(($a['wins'] - $a['losses']) * 100*1024*1024);
}
else
{
$plus_minus = "-";
$plus_minus .= mksize(($a['losses'] - $a['wins']) * 100*1024*1024);
}
$htmlout .="<tr><td>$num</td><td align='left'>".
"<b><a href='userdetails.php?id=".$a['id']."'>".get_username($a["id"])."</a></b></td>".
"<td align='right'>".number_format($a['wins'], 0)."</td>".
"<td align='right'>".number_format($a['losses'], 0)."</td>".
"<td align='right'>".number_format($a['games'], 0)."</td>".
"<td align='right'>$win_perc</td>".
"<td align='right'>$plus_minus</td>".
"</tr>\n";
}
$htmlout .= end_table2();
$htmlout .= end_frame2();
return $htmlout;
}
$cachefile = "cache/bjstats.txt";
$cachetime = 60 * 30; // 30 minutes
//$cachetime = 10 * 3;
$Cache->new_page('bjstats', $cachetime, true);
if (!$Cache->get_page()){
$Cache->add_whole_row();
$mingames = 50;
$HTMLOUT='';
$HTMLOUT .="<h1>Blackjack Stats</h1>";
$HTMLOUT .="<p>Stats are cached and updated every 30 minutes. You need to play at least $mingames games to be included.</p>";
$HTMLOUT .="<br />";
//==Most Games Played
$res = sql_query("SELECT id, username, bjwins AS wins, bjlosses AS losses, bjwins + bjlosses AS games FROM users WHERE bjwins + bjlosses > $mingames ORDER BY games DESC LIMIT 10") or sqlerr(__FILE__, __LINE__);
$HTMLOUT .= bjtable($res, "Most Games Played","Users");
$HTMLOUT .="<br /><br />";
//==Most Games Played
//==Highest Win %
$res = sql_query("SELECT id, username, bjwins AS wins, bjlosses AS losses, bjwins + bjlosses AS games, bjwins / (bjwins + bjlosses) AS winperc FROM users WHERE bjwins + bjlosses > $mingames ORDER BY winperc DESC LIMIT 10") or sqlerr(__FILE__, __LINE__);
$HTMLOUT .= bjtable($res, "Highest Win Percentage","Users");
$HTMLOUT .="<br /><br />";
//==Highest Win %
//==Most Credit Won
$res = sql_query("SELECT id, username, bjwins AS wins, bjlosses AS losses, bjwins + bjlosses AS games, bjwins - bjlosses AS winnings FROM users WHERE bjwins + bjlosses > $mingames ORDER BY winnings DESC LIMIT 10") or sqlerr(__FILE__, __LINE__);
$HTMLOUT .= bjtable($res, "Most Credit Won","Users");
$HTMLOUT .="<br /><br />";
//==Most Credit Won
//==Most Credit Lost
$res = sql_query("SELECT id, username, bjwins AS wins, bjlosses AS losses, bjwins + bjlosses AS games, bjlosses - bjwins AS losings FROM users WHERE bjwins + bjlosses > $mingames ORDER BY losings DESC LIMIT 10") or sqlerr(__FILE__, __LINE__);
$HTMLOUT .= bjtable($res, "Most Credit Lost","Users");
//==Most Credit Lost
$HTMLOUT .="<br /><br />";
;
print $HTMLOUT ;
$Cache->end_whole_row();
$Cache->cache_page();
}
stdhead('Blackjack Stats');
echo $Cache->next_row();
stdfoot();
?>