• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[SQL] Real Tibia Highscores

tatu hunter

Insane Mind~
Joined
Jun 6, 2007
Messages
354
Reaction score
23
Location
Itaporã, Brazil
Hello, as I see this is the first script on the forum...
Made by me (Tatu_Hunter).

Last Update: 17/09/2007 at 21:33...

Features:
* Updated to work with the Newest DataBase! (7.92 OTServers)
* Players with group_id more than 1 will not show in the rank (configurable in config.php).
* No GM's in the rank
* 25 players per page (Configurable in config.php)

Config.php
PHP:
<?
/*
      Script made by Tatu_Hunter        
    Please dont remove this Credits      
*/
$group_id = "4";        // Players with group_id more or equal to this variable will not shown in the rank.
$players_page = "25";         // How many players per page?
$db['user'] = "root";        // Your USER for MySQL.
$db['pass'] = "password";    // Your Password.
$db['host'] = "localhost";    // HOST.
$db['name'] = "database";    // Data Base name.
@mysql_connect($db['host'], $db['user'], $db['pass']) or die("Unable to connect with the date base.");
@mysql_select_db($db['name']) or die("Unable to select the data base <b>".$db['name']."</b>.");
?>

and Highscores.php
PHP:
<!--
      Script made by Tatu_Hunter        
    Please dont remove this Credits      
//-->
<style type="text/css"> 
body {
	font-family: verdana, geneva, arial, sans-serif;
	font-size: 10px;
	color: #5A2800;
	background-color: #FFFFFF;
}
#fonte{
	color: #5A2800;
}
.style2 {
	color: #FFFFFF;
}
#tabtop {
	background-color:#505050;
	font-weight:bold;
	color:#FFFFFF;
}
#highscores {
	float: right;
	width: 80px;
	margin: 0; padding: 0; 
	background-color: #EEE5C9; 	
}
#highscores .choose {
	background-color:#505050;
	text-align:center;
	font-size:9px;
	font-weight:bold;
	color:#FFFFFF;
}
#highscores .links {
	font-size:9px;
	font: bold;
	text-align:center;
}

#highscores a {
    font-weight:bold;
	text-decoration: none;
	color: #004294;
}
#highscores a:hover {
    font-weight:bold;
	background-color: inherit;
	text-decoration:underline;
}</style>
<?php
/*
      Script made by Tatu_Hunter        
    Please dont remove this Credits      
*/
include ("config.php");
$skill = isset($_GET['skill']) ? strtolower($_GET['skill']) : 'level';
$page = isset($_GET['page']) ? $_GET['page'] : '1';
$limit = $players_page;
if($page > 11){
	$inicio = 11;
}else{
	$inicio = $page - 1;
}

$ini = $inicio * $limit;
$next = $limit * $page + 1;
$next_ = $limit * $page + $limit;
if($page == 2){
	$back = "1-".$limit;
}elseif($page > 2){
	$aa = $page - 1;
 	$b = $page - 2;
	$a = $limit * $b;
	$back = $a + 1 ."-". $limit * $aa;
}
if($page == 1)
	$i = 1;
else
	$i = $ini + 1;
	
$c=1;
if($skill == "level")
	$skiller = "Experience";
elseif($skill == "magic")
	$skiller = "Magic Level";
elseif($skill == "fist")
	$skiller = "Fist Fighting";
elseif($skill == "club")
	$skiller = "Club Fighting";
elseif($skill == "sword")
	$skiller = "Sword Fighting";
elseif($skill == "axe")
	$skiller = "Axe Fighting";
elseif($skill == "distance")
	$skiller = "Distance Fighting";
elseif($skill == "shielding")
	$skiller = "Shielding";
elseif($skill == "fish")
	$skiller = "Fishing";
	
echo "
<table width=\"100%\" border=\"0\" cellpadding=\"4\" cellspacing=\"1\">
  <tr>
    <td width=\"85%\" valign=\"top\"><P><br><br><center><b><font size=4>Highscores for ".$skiller."</font></b><Br><br><br></P>
	<table cellpadding=\"4\" cellspacing=\"1\" width=\"100%\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\">
      <tr bgcolor=\"#505050\">
        <td width=\"5%\"><div align=\"center\" class=\"style2\">#</div></td>
        <td width=\"62%\"><span class=\"style2\">Name</span></td>
        <td width=\"13%\"><div align=\"center\" class=\"style2\">".ucwords($skill)." </div></td>";
 if($skill == 'level') echo "<td width=\"20\"><div align=\"center\" class=\"style2\">Experience</div></td>";
echo " </tr></td>";
switch($skill)
{
	case "fist";
	$id = 0;
	break;
	case "sword";
	$id = 1;
	break;
	case "club";
	$id = 2;
	break;
	case "axe";
	$id = 3;
	break;
	case "distance";
	$id = 4;
	break;
	case "shielding";
	$id = 5;
	break;
	case "fishing";
	$id = 6;
	break;
}


$re = mysql_query("SELECT count(*) as total FROM players WHERE account_id > '1' AND group_id <= '".$group_id."'");
$total = mysql_result($re, 0, "total");
$paginas = ceil($total / $limit);
if($skill == "level")
{
	$Query = mysql_query("SELECT name, level, experience FROM players WHERE account_id > '1' AND group_id <= '".$group_id."' ORDER BY experience DESC LIMIT $ini,$limit");
	while($ret = mysql_fetch_array($Query)){
		echo ($c%2) ? '<tr bgcolor="#C6AE8A">' : '<tr bgcolor="#EEE5C9">';
	    echo "
	    <td><div align=\"center\" id=\"fonte\">".$i."</div></td>
		<td><a href=\"?cat=Community&t=Characters&name=".urlencode($ret['name'])."\">".$ret['name']."</a></td>
		<td><div align=\"center\" id=\"fonte\">".$ret['level']."</div></td>
		<td><div align=\"center\" id=\"fonte\">".$ret['experience']."</div></td>
	    </tr>
		";
		$i++; $c++;
		if($c==$limit){$c=1;}
	}
	if($page > 1){
		$menos = $page - 1;
		$url = $_SERVER["PHP_SELF"]."?cat=Community&t=Highscores&skill=".$skill."&page=".$menos;
		$link1 = "<a href=\"".$_SERVER["PHP_SELF"]."?cat=Community&t=Highscores&skill=".$skill."\">Top</a> | <a href=\"".$url."\"> ".$back." </a>";
	}
	if($page < $paginas){
		$mais = $page + 1;
		$url = $_SERVER["PHP_SELF"]."?cat=Community&t=Highscores&skill=".$skill."&page=".$mais;
		$link2 = "<a href=\"".$url."\"> ".$next."-".$next_." </a>"; $bar=true;
	}
	if($total > $limit){
		echo "<tr><td colspan=\"4\"><div align=\"right\" id=\"highscore\">";
		echo $link1;
		if($bar){
			if($page == 1 or $page == NULL)
				echo "";
			else
				echo "|";
		}
		echo $link2;
		echo "</div></td></tr>";
	}
}
elseif($skill == "magic")
{
	$Query = mysql_query("SELECT name, maglevel FROM players WHERE account_id > '1' AND group_id <= '".$group_id."' ORDER BY maglevel DESC LIMIT $ini,$limit");
	while($ret = mysql_fetch_array($Query)){
	  echo ($c%2) ? '<tr bgcolor="#C6AE8A">' : '<tr bgcolor="#EEE5C9">';
	  echo "
	    <td><div align=\"center\" id=\"fonte\">".$i."</div></td>
		<td><a href=\"?cat=Community&t=Characters&name=".urlencode($ret['name'])."\">".$ret['name']."</a></td>
		<td><div align=\"center\" id=\"fonte\">".$ret['maglevel']."</div></td>
	    </tr>
		";
		$i++; $c++;
		if($c==$limit){$c=1;}
	}
	if($page > 1){
		$menos = $page - 1;
		$url = $_SERVER["PHP_SELF"]."?cat=Community&t=Highscores&skill=".$skill."&page=".$menos;
		$link1 = "<a href=\"".$_SERVER["PHP_SELF"]."?cat=Community&t=Highscores&skill=".$skill."\">Top</a> | <a href=\"".$url."\"> ".$back." </a>";
	}
	if($page < $paginas){
		$mais = $page + 1;
		$url = $_SERVER["PHP_SELF"]."?cat=Community&t=Highscores&skill=".$skill."&page=".$mais;
		$link2 = "<a href=\"".$url."\"> ".$next."-".$next_." </a>"; $bar=true;
	}
	if($total > $limit){
		echo "<tr><td colspan=\"4\"><div align=\"right\" id=\"highscore\">";
		echo $link1;
		if($bar){
			if($page == 1 or $page == NULL)
				echo "";
			else
				echo "|";
		}
		echo $link2;
		echo "</div></td></tr>";
	}
}
else{
	$Query = mysql_query("SELECT * FROM players,player_skills WHERE players.account_id > '1' AND players.group_id < '".$group_id."' AND players.id = player_skills.player_id AND player_skills.skillid = '".$id."' ORDER BY value DESC LIMIT $ini,$limit");
	while($ret = mysql_fetch_array($Query)){
	  echo ($c%2) ? '<tr bgcolor="#C6AE8A">' : '<tr bgcolor="#EEE5C9">';
	  echo "
		<td><div align=\"center\" id=\"fonte\">".$i."</div></td>
	    <td><a href=\"?cat=Community&t=Characters&name=".urlencode($ret['name'])."\">".$ret['name']."</a></td>
		<td><div align=\"center\" id=\"fonte\">".$ret['value']."</div></td>
	    </tr>
		";
		$i++; $c++;
		if($c==$limit){$c=1;}
	}
	if($page > 1){
		$menos = $page - 1;
		$url = $_SERVER["PHP_SELF"]."?cat=Community&t=Highscores&skill=".$skill."&page=".$menos;
		$link1 = "<a href=\"".$_SERVER["PHP_SELF"]."?cat=Community&t=Highscores&skill=".$skill."\">Top</a> | <a href=\"".$url."\"> ".$back." </a>";
	}
	if($page < $paginas){
		$mais = $page + 1;
		$url = $_SERVER["PHP_SELF"]."?cat=Community&t=Highscores&skill=".$skill."&page=".$mais;
		$link2 = "<a href=\"".$url."\"> ".$next."-".$next_." </a>"; $bar=true;
	}
	if($total > $limit){
		echo "<tr><td colspan=\"4\"><div align=\"right\" id=\"highscore\">";
		echo $link1;
		if($bar){
			if($page == 1 or $page == NULL)
				echo "";
			else
				echo "|";
		}
		echo $link2;
		echo "</div></td></tr>";
	}
}
echo "</table>
<td valign=\"top\"><div id=\"highscores\"><div class=\"choose\">Choose a skill</div><div class=\"links\">
<a href=\"?skill=Level\">Level</a><br />
<a href=\"?skill=Magic\">Magic</a><br />
<a href=\"?skill=Fist\">Fist</a><br />
<a href=\"?skill=Club\">Club</a><br />
<a href=\"?skill=Sword\">Sword</a><br />
<a href=\"?skill=Axe\">Axe</a><br />
<a href=\"?skill=Distance\">Distance</a><br />
<a href=\"?skill=Shielding\">Shielding</a><br />
<a href=\"?skill=Fish\">Fish</a><br />
</div></div></td>
</tr>
</table>
";
mysql_close();
?>

If you find any bug post here...

SS: SCREENSHOT HERE
 
Last edited:
@Jester
Thanks for posting a SS to the people!

And you can add easily images/template to the highscores to it be more wonderful :p!
 
I've a problem, some players are displayed 2x or more in the same skill.
 
WOuld be nice if you add some colours to it and a special design or arleast the real tibia design anwyais looks great man respect,\,,/,
 
I still have this problem ^^ Its showing some names 2x any ideas?
 
Back
Top