Added full source code
This commit is contained in:
commit
33f8586698
1377 changed files with 123808 additions and 0 deletions
scripts/game/main/rankings
52
scripts/game/main/rankings/library.inc
Normal file
52
scripts/game/main/rankings/library.inc
Normal file
|
@ -0,0 +1,52 @@
|
|||
<?php
|
||||
|
||||
class main_rankings_library {
|
||||
var $index = array(
|
||||
'append',
|
||||
'delete',
|
||||
'getAll',
|
||||
'update'
|
||||
);
|
||||
|
||||
function main_rankings_library($lib) {
|
||||
$this->lib = $lib;
|
||||
$this->db = $this->lib->game->db;
|
||||
}
|
||||
|
||||
function getType($identifier) {
|
||||
$version = $this->lib->game->version->id;
|
||||
$name = $this->lib->game->name;
|
||||
|
||||
$q = $this->db->query("SELECT g.id FROM ranking_def d, ranking_game g "
|
||||
. "WHERE d.version='$version' AND d.name='$identifier' AND g.ranking=d.id AND g.game='$name'");
|
||||
list($id) = dbFetchArray($q);
|
||||
return $id;
|
||||
}
|
||||
|
||||
function getTypes() {
|
||||
$game = $this->lib->game;
|
||||
$version = $game->version;
|
||||
|
||||
$q = $this->db->query("SELECT g.id,d.name FROM ranking_def d, ranking_game g "
|
||||
. "WHERE d.version='{$version->id}' AND g.game='{$game->name}' AND g.ranking=d.id");
|
||||
$rs = array();
|
||||
while ($r = dbFetchArray($q)) {
|
||||
$rs[$r[1]] = $r[0];
|
||||
}
|
||||
return $rs;
|
||||
}
|
||||
|
||||
function getText($id, $lang) {
|
||||
$q = $this->db->query("SELECT t.name AS name,t.description AS description "
|
||||
. "FROM ranking_text t, ranking_game g "
|
||||
. "WHERE g.id=$id AND t.ranking=g.ranking AND t.lang='$lang'");
|
||||
return dbFetchHash($q);
|
||||
}
|
||||
|
||||
function get($type, $id) {
|
||||
$q = $this->db->query("SELECT points,ranking FROM ranking WHERE r_type=$type AND LOWER(id)='".addslashes(strtolower($id))."' ORDER BY ranking,id");
|
||||
return dbFetchHash($q);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
30
scripts/game/main/rankings/library/append.inc
Normal file
30
scripts/game/main/rankings/library/append.inc
Normal file
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
class main_rankings_append {
|
||||
|
||||
function main_rankings_append($lib) {
|
||||
$this->lib = $lib;
|
||||
$this->db = $this->lib->game->db;
|
||||
}
|
||||
|
||||
function run($type, $id, $additional = null) {
|
||||
$q = $this->db->query("SELECT ranking FROM ranking WHERE r_type=$type AND points=0");
|
||||
if ($q && dbCount($q)) {
|
||||
list($rk) = dbFetchArray($q);
|
||||
} else {
|
||||
$q = $this->db->query("SELECT MAX(ranking) FROM ranking WHERE r_type=$type");
|
||||
list($mrk) = dbFetchArray($q);
|
||||
if (is_null($mrk)) {
|
||||
$rk = 1;
|
||||
} else {
|
||||
$q = $this->db->query("SELECT COUNT(*) FROM ranking WHERE r_type=$type AND ranking=$mrk");
|
||||
list($nrk) = dbFetchArray($q);
|
||||
$rk = $mrk + $nrk;
|
||||
}
|
||||
}
|
||||
$this->db->query("INSERT INTO ranking(r_type,id,additional,points,ranking) VALUES("
|
||||
. "$type,'" . addslashes($id) . "'," . (is_null($additional) ? "NULL" : ("'" . addslashes($additional) . "'")) . ",0,$rk)");
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
20
scripts/game/main/rankings/library/delete.inc
Normal file
20
scripts/game/main/rankings/library/delete.inc
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
class main_rankings_delete {
|
||||
|
||||
function main_rankings_delete($lib) {
|
||||
$this->lib = $lib;
|
||||
$this->db = $this->lib->game->db;
|
||||
}
|
||||
|
||||
function run($type,$id) {
|
||||
$q = $this->db->query("SELECT ranking FROM ranking WHERE r_type=$type AND id='".addslashes($id)."'");
|
||||
list($rk) = dbFetchArray($q);
|
||||
if (!is_null($rk)) {
|
||||
$this->db->query("DELETE FROM ranking WHERE r_type=$type AND id='".addslashes($id)."'");
|
||||
$this->db->query("UPDATE ranking SET ranking=ranking-1 WHERE r_type=$type AND ranking>$rk");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
27
scripts/game/main/rankings/library/getAll.inc
Normal file
27
scripts/game/main/rankings/library/getAll.inc
Normal file
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
class main_rankings_getAll {
|
||||
|
||||
function main_rankings_getAll($lib) {
|
||||
$this->lib = $lib;
|
||||
$this->db = $this->lib->game->db;
|
||||
}
|
||||
|
||||
function run($type, $top = null) {
|
||||
if (is_null($top)) {
|
||||
$qs = "";
|
||||
} else {
|
||||
$qs = "AND ranking<=$top";
|
||||
}
|
||||
$rs = array();
|
||||
|
||||
$q = $this->db->query("SELECT id,points,ranking FROM ranking WHERE r_type=$type $qs ORDER BY ranking ASC,id ASC");
|
||||
while ($r = dbFetchHash($q)) {
|
||||
array_push($rs, $r);
|
||||
}
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
39
scripts/game/main/rankings/library/update.inc
Normal file
39
scripts/game/main/rankings/library/update.inc
Normal file
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
class main_rankings_update {
|
||||
|
||||
function main_rankings_update($lib) {
|
||||
$this->lib = $lib;
|
||||
$this->db = $this->lib->game->db;
|
||||
}
|
||||
|
||||
function run($id, $data) {
|
||||
// $data = array($points => array($name));
|
||||
|
||||
$plist = array_keys($data);
|
||||
sort($plist);
|
||||
$plist = array_reverse($plist);
|
||||
|
||||
$a = array(); $cr = 1;
|
||||
for ($i=0;$i<count($plist);$i++) {
|
||||
$s = 0;
|
||||
foreach ($data[$plist[$i]] as $pn) {
|
||||
array_push($a, array(
|
||||
'name' => $pn,
|
||||
'points' => $plist[$i],
|
||||
'ranking' => $cr
|
||||
));
|
||||
$s ++;
|
||||
}
|
||||
$cr += $s;
|
||||
}
|
||||
|
||||
$this->db->query("DELETE FROM ranking WHERE r_type=$id");
|
||||
foreach ($a as $entry) {
|
||||
$this->db->query("INSERT INTO ranking(r_type,id,additional,points,ranking) VALUES("
|
||||
. "$id, '" . addslashes($entry['name']) . "',NULL,".$entry['points'].",".$entry['ranking'].")");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Reference in a new issue