mirror of
https://github.com/Znote/ZnoteAAC.git
synced 2025-10-13 18:04:54 +02:00
Remade Highscores: Added multi-page support, built-in score type navigation, using GET instead of POST.
Tested on TFS 1.0 and 0.3/4, but should work on 0.2 as well.
This commit is contained in:
@@ -809,103 +809,35 @@ function user_character_list_count($account_id) {
|
||||
|
||||
// END MY ACCOUNT RELATED
|
||||
|
||||
// HIGHSCORE FUNCTIONS \\(I think I will move this to an own file later)
|
||||
function highscore_getAll() {
|
||||
$result = array();
|
||||
for ($i = 0; $i <= 6; $i++) {
|
||||
$result[$i] = highscore_skills($i);
|
||||
}
|
||||
$result[7] = highscore_experience();
|
||||
$result[8] = highscore_maglevel();
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
// TFS 1.0 highscore
|
||||
function highscore_getAll_10($from = 0, $to = 30) {
|
||||
$result = array();
|
||||
for ($i = 0; $i <= 8; $i++) {
|
||||
$result[$i] = highscore_getSkill_10($i, $from, $to);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
function highscore_getSkill_10($id = 8, $from = 0, $to = 30) {
|
||||
$skills = array(
|
||||
0 => 'skill_fist',
|
||||
1 => 'skill_club',
|
||||
2 => 'skill_sword',
|
||||
3 => 'skill_axe',
|
||||
4 => 'skill_dist',
|
||||
5 => 'skill_shielding',
|
||||
6 => 'skill_fishing',
|
||||
8 => 'maglevel',
|
||||
7 => 'level',
|
||||
);
|
||||
|
||||
if ($id < 7 || $id > 7) $scores = mysql_select_multi("SELECT `". $skills[$id] ."` AS `value`, `name`, `vocation` FROM `players` WHERE `group_id`<'2' ORDER BY `". $skills[$id] ."` DESC LIMIT {$from}, {$to};");
|
||||
else $scores = mysql_select_multi("SELECT `". $skills[$id] ."` AS `level`, `experience` AS `value`, `name`, `vocation` FROM `players` WHERE `group_id`<'2' ORDER BY `experience` DESC LIMIT {$from}, {$to};");
|
||||
for ($i = 0; $i < count($scores); $i++) $scores[$i]['vocation'] = vocation_id_to_name($scores[$i]['vocation']);
|
||||
return $scores;
|
||||
}
|
||||
|
||||
// Returns an array containing up to 30 best players in terms of (selected skillid). Returns player ID and skill value.
|
||||
function highscore_skills($skillid) {
|
||||
$skillid = (int)$skillid;
|
||||
|
||||
$data = mysql_select_multi("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid`='$skillid' ORDER BY `value` DESC LIMIT 0, 30");
|
||||
|
||||
if ($data !== false) {
|
||||
for ($i = 0; $i < count($data); $i++) {
|
||||
// Fetch extra data from SQL players table
|
||||
if ($skillid == 6 || $skillid == 5) $vd = mysql_select_single("SELECT `vocation`, `group_id`, `name` FROM `players` WHERE `id` = '". $data[$i]['player_id'] ."';");
|
||||
else $vd = mysql_select_single("SELECT `group_id`, `name` FROM `players` WHERE `id` = '". $data[$i]['player_id'] ."';");
|
||||
|
||||
// If skillid is fish fighting, lets display vocation name instead of id.
|
||||
if ($skillid == 6 || $skillid == 5) {
|
||||
|
||||
if ($vd !== false) $data[$i]['vocation'] = vocation_id_to_name($vd['vocation']);
|
||||
else $data[$i]['vocation'] = 'Unknown';
|
||||
}
|
||||
|
||||
// Happen to every skill group
|
||||
$data[$i]['group_id'] = $vd['group_id'];
|
||||
$data[$i]['name'] = $vd['name'];
|
||||
unset($data[$i]['player_id']);
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
// Returns an array containing up to 30 best players in terms of experience. Returns name, experience, vocation and level.
|
||||
function highscore_experience() {
|
||||
$data = mysql_select_multi("SELECT `name`, `experience` as `value`, `vocation`, `level`, `group_id` FROM `players` WHERE `experience`>500 ORDER BY `experience` DESC LIMIT 0, 30");
|
||||
if ($data !== false) {
|
||||
for ($i = 0; $i < count($data); $i++) {
|
||||
$data[$i]['vocation'] = vocation_id_to_name($data[$i]['vocation']);
|
||||
}
|
||||
// HIGHSCORE FUNCTIONS \\
|
||||
function fetchAllScores($rows, $tfs, $g) {
|
||||
// Return scores ordered by type
|
||||
$data = array();
|
||||
if ($tfs == 'TFS_10') {
|
||||
$data[1] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_club` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_club` DESC LIMIT 0, $rows;");
|
||||
$data[2] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_sword` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_sword` DESC LIMIT 0, $rows;");
|
||||
$data[3] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_axe` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_axe` DESC LIMIT 0, $rows;");
|
||||
$data[4] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_dist` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_dist` DESC LIMIT 0, $rows;");
|
||||
$data[5] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_shielding` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_shielding` DESC LIMIT 0, $rows;");
|
||||
$data[6] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_fishing` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_fishing` DESC LIMIT 0, $rows;");
|
||||
$data[7] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `experience`, `level` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `experience` DESC LIMIT 0, $rows;");
|
||||
$data[8] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `maglevel` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `maglevel` DESC LIMIT 0, $rows;");
|
||||
$data[9] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `skill_fist` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `skill_fist` DESC LIMIT 0, $rows;");
|
||||
} else {
|
||||
$data[9] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 0 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;");
|
||||
$data[1] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 1 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;");
|
||||
$data[2] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 2 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;");
|
||||
$data[3] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 3 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;");
|
||||
$data[4] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 4 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;");
|
||||
$data[5] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 5 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;");
|
||||
$data[6] = mysql_select_multi("SELECT `s`.`player_id` AS `id`, `s`.`value` AS `value`, `p`.`name` AS `name`, `p`.`vocation` AS `vocation` FROM `player_skills` AS `s` LEFT JOIN `players` AS `p` ON `s`.`player_id`=`p`.`id` WHERE `s`.`skillid` = 6 AND `p`.`group_id` < $g ORDER BY `s`.`value` DESC LIMIT 0, $rows;");
|
||||
$data[7] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `experience`, `level` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `experience` DESC limit 0, $rows;");
|
||||
$data[8] = mysql_select_multi("SELECT `id`, `name`, `vocation`, `maglevel` AS `value` FROM `players` WHERE `group_id` < $g ORDER BY `maglevel` DESC limit 0, $rows;");
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
// Returns an array containing up to 30 best players with high magic level (returns their name and magic level)
|
||||
function highscore_maglevel() {
|
||||
return mysql_select_multi("SELECT `name`, `maglevel` as `value`, `group_id` FROM `players` WHERE `experience`>500 ORDER BY `maglevel` DESC LIMIT 0, 30");
|
||||
}
|
||||
|
||||
// Count how many skill entries are in the db for a certain skillid (this can relate to how many players exist).
|
||||
function highscore_count($skillid) {
|
||||
$data = mysql_select_single("SELECT COUNT(`player_id`) AS `count` FROM `player_skills` WHERE `skillid`='$skillid' LIMIT 0, 30");
|
||||
return ($data !== false) ? $data['count'] : 0;
|
||||
}
|
||||
|
||||
// Count how many players have higher exp than 500
|
||||
function highscore_experience_count() {
|
||||
$data = mysql_select_single("SELECT COUNT(`id`) AS `count` FROM `players` WHERE `experience`>'500' LIMIT 0, 30");
|
||||
return ($data !== false) ? $data['count'] : 0;
|
||||
}
|
||||
|
||||
// END HIGHSCORE FUNCTIONS
|
||||
|
||||
function user_recover($mode, $edom, $email, $character, $ip) {
|
||||
/* -- Lost account function - user_recovery --
|
||||
|
||||
|
Reference in New Issue
Block a user