DI

[sql] Rank 100% Igual Do Tibia

Por Diorges, 13 de abr. de 2007 em Tutoriais de Websites

tibia
script
otserv
18
6k
DiorgesD
13 de abril de 2007 às 23:01

Post retirado do OTFans!

Funciona apenas para servers SQL com o nova estrutura de Banco de Dados.

 

Versão antiga que funciona com estrutura antiga pode ser encontrado nesse link:

http://rapidshare.com/files/25881668/highscores.rar.html

 

-------------------------------------------------------------------------------------------

Hello!

This highscores was made by me.

The codes are based on the script made by Junkfood, and some credits will be to him.

No GM's in the Rank and 25 players per page.

 

ChangeLog:

* 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).

* Fixed some issues.

 

Bugs:

None yet.

 

Config.php

<?
/*
  Script made by Tatu_Hunter		
Please dont remove this Credits	  
*/
$group_id = "2";		// Players with group_id more or equal to this variable will not shown in the rank.
$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

<?
/*
  Script made by Tatu_Hunter		
Please dont remove this Credits	  
*/
include("config.php");
$cfg['rank'] = 25;
if(isset($_GET['skill'])){
$skill = $_GET['skill'];
} else {
$skill = "Level";
}
if(!isset($_GET['pg'])) {
$pg = 1;
} else {
$pg = $_GET['pg'];
}
if($pg > 11){
$inicio = 11;
}else{
$inicio = $pg - 1;
}
$ini = $inicio * $cfg['rank'];
$prox = $cfg['rank'] * $pg + 1;
$prox_ = $cfg['rank'] * $pg + $cfg['rank'];
if($pg == 2){
$ante = "1-".$cfg['rank'];
}elseif($pg > 2){
$aa = $pg - 1;
$b = $pg - 2;
$a = $cfg['rank'] * $b;
$ante = $a+'1'."-".$cfg['rank']*$aa;
}
if($pg == 1 or $pg == ""){
$asd = " ";
}else{
$asd = " | ";
}
?>
<style type="text/css">
<!--
.style1 {color: #FFFFFF}
-->
</style>
<div align="center"><h3 class="headerstyle">Highscores - Top 300</h3></div>
<table width="100%" border="0" cellspacing="1" cellpadding="2">
 <tr>
<td width="87%" valign="top"><table width="100%" border="0" cellpadding="2" cellspacing="1" bgcolor="#000000">
  <tr>
	<td width="10%"><div align="center"><span class="style1">Rank</span></div></td>
	<td width="50%"><span class="style1">Nome</span></td>
	<td width="15%"><div align="center"><span class="style1"><?=$skill?></span></div></td>
	<? if($skill == "Level"){?><td width="25%"><div align="center"><span class="style1">Experience</span></div></td><? } ?>
  </tr>
<?  switch($skill){
 case "Fist":
  $id = 0;
  break;
 case "Club":
  $id = 1;
  break;
 case "Sword":
  $id = 2;
  break;
 case "Axe":
  $id = 3;
  break;
 case "Distance":
  $id = 4;
  break;
 case "Shield":
  $id = 5;
  break;
 case "Fish":
  $id = 6;
  break;
}
if($skill == "Level") {
 $total = mysql_query("SELECT * FROM players WHERE group_id < '".$group_id."' ORDER BY level");
 $tr = mysql_num_rows($total);
 $tp = $tr / $cfg['rank'];
 $tp = ceil($tp);
 $ant = $pg-1;
 $pro = $pg+1;
 $verifica = mysql_query("SELECT name,level,experience FROM players WHERE group_id < '".$group_id."' ORDER BY experience DESC LIMIT ".$ini.",".$cfg['rank']."");
 if($pg == 1 or $pg == 0){
  $i = 1;
 }elseif($pg > 1){
  $i = $ini+1;
 }
 while($dados = mysql_fetch_array($verifica)) {
  echo ' <tr>
	   <td bgcolor="#FFFFFF"><center>'.$i.'</center></td>
	   <td bgcolor="#FFFFFF">'.$dados['name'].'</td>
	   <td bgcolor="#FFFFFF"><center>'.$dados['level'].'</center></td>
<td bgcolor="#FFFFFF"><center>'.number_format($dados['experience']).'</center></td>
	  </tr>';
$i++;
 }
 if($tr > $cfg['rank']){
  echo '<tr bgcolor="#FFFFFF">
	<td colspan=4><div align="right">';
  if($pg > 1){
$anterior = '<a href="?skill='.$skill.'&pg='.$ant.'">Rank '.$ante.'</a>';
  }
  if($pg != 11){
if($pg < $tp){
 $proxima = '<a href="?skill='.$skill.'&pg='.$pro.'">Rank '.$prox.'-'.$prox_.'</a>';
 $tt = true;
}
  }
  echo $anterior;
  if($tt == true) echo $asd;
  echo $proxima;
  echo '</div></td><tr>';
 }	
}
elseif($skill == "Magic") {
 $total = mysql_query("SELECT * FROM players WHERE group_id < '".$group_id."' ORDER BY maglevel");
 $tr = mysql_num_rows($total);
 $tp = $tr / $cfg['rank'];
 $tp = ceil($tp);
 $ant = $pg-1;
 $pro = $pg+1;
 $verifica = mysql_query("SELECT name,maglevel FROM players WHERE group_id < '".$group_id."' ORDER BY maglevel DESC LIMIT ".$ini.",".$cfg['rank']."");
 if($pg == 1 or $pg == 0){
  $i = 1;
 }elseif($pg > 1){
  $i = $ini+1;
 }
 while($dados = mysql_fetch_array($verifica)) {
echo ' <tr>
	   <td bgcolor="#FFFFFF"><center>'.$i.'</center></td>
	   <td bgcolor="#FFFFFF">'.$dados['name'].'</td>
	   <td bgcolor="#FFFFFF"><center>'.$dados['maglevel'].'</center></td>
	  </tr>';
$i++;
 }
 if($tr > $cfg['rank']){
  echo '<tr bgcolor="#FFFFFF">
	<td colspan=3><div align="right">';
  if($pg > 1){
$anterior = '<a href="?skill='.$skill.'&pg='.$ant.'">Rank '.$ante.'</a>';
  }
  if($pg != 11){
if($pg < $tp){
 $proxima = '<a href="?skill='.$skill.'&pg='.$pro.'">Rank '.$prox.'-'.$prox_.'</a>';
 $tt = true;
}
  }
  echo $anterior;
  if($tt == true) echo $asd;
  echo $proxima;
  echo '</div></td><tr>';
 } 
}
else {
 $total = mysql_query("SELECT name,value FROM players, player_skills WHERE group_id < '".$group_id."' AND players.id = player_skills.player_id AND player_skills.skillid = ".$id." ORDER BY value DESC");
 $tr = mysql_num_rows($total);
 $tp = $tr / $cfg['rank'];
 $tp = ceil($tp);
 $ant = $pg-1;
 $pro = $pg+1;
 $verifica = mysql_query("SELECT name,value FROM players, player_skills WHERE group_id < '".$group_id."' AND players.id = player_skills.player_id AND player_skills.skillid = ".$id." ORDER BY value DESC LIMIT ".$ini.",".$cfg['rank']."");
 if($pg == 1 or $pg == 0){
  $i = 1;
 }elseif($pg > 1){
  $i = $ini+1;
 }
 while($dados = mysql_fetch_array($verifica)) {
echo ' <tr>
	   <td bgcolor="#FFFFFF"><center>'.$i.'</center></td>
	   <td bgcolor="#FFFFFF">'.$dados['name'].'</td>
	   <td bgcolor="#FFFFFF"><center>'.$dados['value'].'</center></td>
	  </tr>';
$i++;
 }
 if($tr > $cfg['rank']){
  echo '<tr bgcolor="#FFFFFF">
	<td colspan=3><div align="right">';
  if($pg > 1){
$anterior = '<a href="?skill='.$skill.'&pg='.$ant.'">Rank '.$ante.'</a>';
  }
  if($pg != 11){
if($pg < $tp){
 $proxima = '<a href="?skill='.$skill.'&pg='.$pro.'">Rank '.$prox.'-'.$prox_.'</a>';
 $tt = true;
}
  }
  echo $anterior;
  if($tt == true) echo $asd;
  echo $proxima;
  echo '</div></td><tr>';
 } 
} 

?>
</table>
<div align="right">
</div>
  <table width="100%" border="0" cellpadding="2" cellspacing="1" bgcolor="#000000">
  </table></td>
<td width="13%" valign="top"><table width="130" border="0" align="right" cellpadding="2" cellspacing="1" bgcolor="#000000">
  <tr>
	<td bgcolor="#FFFFFF"><div align="center"><a href="?topico=highscores&skill=Level">Level</a></div></td>
  </tr>
  <tr>
	<td bgcolor="#FFFFFF"><div align="center"><a href="?topico=highscores&skill=Magic">Magic Level </a></div></td>
  </tr>
  <tr>
	<td bgcolor="#FFFFFF"><div align="center"><a href="?topico=highscores&skill=Fist">Fist Fighting </a></div></td>
  </tr>
  <tr>
	<td bgcolor="#FFFFFF"><div align="center"><a href="?topico=highscores&skill=Club">Club Fighting </a></div></td>
  </tr>
  <tr>
	<td bgcolor="#FFFFFF"><div align="center"><a href="?topico=highscores&skill=Sword">Sword Fighting </a></div></td>
  </tr>
  <tr>
	<td bgcolor="#FFFFFF"><div align="center"><a href="?topico=highscores&skill=Axe">Axe Fighting </a></div></td>
  </tr>
  <tr>
	<td bgcolor="#FFFFFF"><div align="center"><a href="?topico=highscores&skill=Distance">Distance Fighting</a></div></td>
  </tr>
  <tr>
	<td bgcolor="#FFFFFF"><div align="center"><a href="?topico=highscores&skill=Shield">Shielding</a></div></td>
  </tr>
  <tr>
	<td bgcolor="#FFFFFF"><div align="center"><a href="?topico=highscores&skill=Fish">Fishing</a></div></td>
  </tr>
</table></td>
 </tr>
</table>
<?
mysql_close();
?>

 

Screenshot

imagemzz3.jpg

 

------

If you find any bug post here...

c ya!

 

---------

Ahhh lembrando que eu sou Tatu_Hunter.

Editado Abril 13 por Diorges

Tdax 0T
14 de abril de 2007 às 09:45

Olá,

 

Muito bom, você está de parabéns, tá ótimo, vou testar aqui.

 

Tdax.

14 de abril de 2007 às 10:15

Funfa em xml tb ? ;P

DiorgesD
14 de abril de 2007 às 16:31

@up

Apenas só SQL!

2 meses depois...
MustorzeM
15 de junho de 2007 às 17:19

ehheeh nao uso muito sql mais ta daorinha

2 meses depois...
HeNnetH
13 de agosto de 2007 às 22:11

heheh tbm não intendo de sql mas parece estar bom vou testar x~] e estudar o code vlw!

 

 

 

Abraços HeNnEt B)\\

RoD LoKoR
13 de agosto de 2007 às 22:32

Rox, hehe.. Tava rpecisando de um rank perfeito mesmo..

Obrigado,

 

//Abraços,

1 mês depois...
godthunderG
04 de setembro de 2007 às 16:57

ow mano assim o sistema é bom só nao gostei por 1 coisa pq você copiou do Swelia

você nao o fez...

3 meses depois...
ArdokA
23 de dezembro de 2007 às 14:00

Funfa em sites SQL apartir do 7.92? Ou somente em 7.92?

h3onlineH
26 de dezembro de 2007 às 17:01

bom gostei

1 mês depois...
DiorgesD
11 de janeiro de 2008 às 18:41
ow mano assim o sistema é bom só nao gostei por 1 coisa pq você copiou do Swelia

você nao o fez...

 

Quem disse que não foi eu?

O site Swellia é um site com vários scripts feito por várias pessoas e uma delas sou eu... Tatu_Hunter

 

Obrigado por gostarem.

upkingU
11 de janeiro de 2008 às 23:17

boa, sql ganhando força

do moh apoio ao servidor em mysql mas to put* pq nao consigo fazer o xampp pegar aki, alguem me ranja um tuto de otstriad pra servidor em mysql?

EremboRE
13 de janeiro de 2008 às 19:36

Poderia ter sido feito por você, mas ficou bem legal. Obrigado por trazer!

eniofreireE
14 de janeiro de 2008 às 02:59

Muito Bem Explicado, Valeuu!

3 semanas depois...
fabimdoidimF
30 de janeiro de 2008 às 17:15

kra parabens! mas devia postar um para XML q é um dos tipos mais usados!!