athenso
Average Coder
- Joined
- May 31, 2011
- Messages
- 155
- Solutions
- 3
- Reaction score
- 23
Since it was increasingly difficult to find one, I attempted to edit/make a Highscores page that shows Rebirth ranks. It wasn't easy (I don't know php), but I got it to work. Simply copy and paste the codes into the respective locations. Moderator move if this is in the wrong section. Rep if it helped.
This only works if you are using a rebirth function, with Rebirths in the player table. Easy to edit.
www\system\application\views\highscores.php
www\system\application\models\highscore_model.php
This only works if you are using a rebirth function, with Rebirths in the player table. Easy to edit.
www\system\application\views\highscores.php
Code:
<?php
require("config.php");
$ide = new IDE;
try {$ide->loadInjections("highscores");} catch(Exception $e) {error($e->getMessage()); }
echo form_open('highscores');
$uri = $this->uri->segment(5) ? $this->uri->segment(5) : 0;
if(count($config['worlds']) > 1) {
echo "<b>World</b> ";
echo "<select name='world'>";
foreach($config['worlds'] as $id=>$name) {
if($_POST['world'] == $id)
echo "<option selected='true' value='$id'>$name</option>";
else
echo "<option value='$id'>$name</option>";
}
echo "</select>";
}
echo " <b>Rank of</b> ";
echo "<select name='skill'>";
echo "<option class='skill' ".set_select('skill', 1, true)." value='level'>Level</option>";
echo "<option class='skill' ".set_select('skill', 9)." value='magic'>Magic Level</option>";
echo "<option class='skill' ".set_select('skill', 2)." value='1'>Fist fighting</option>";
echo "<option class='skill' ".set_select('skill', 3)." value='2'>Club fighting</option>";
echo "<option class='skill' ".set_select('skill', 4)." value='3'>Sword fighting</option>";
echo "<option class='skill' ".set_select('skill', 5)." value='4'>Axe fighting</option>";
echo "<option class='skill' ".set_select('skill', 6)." value='5'>Distance fighting</option>";
echo "<option class='skill' ".set_select('skill', 7)." value='6'>Shielding</option>";
echo "<option class='skill' ".set_select('skill', 8)." value='rebirths'>Rebirth Rank</option>";
echo "</select>";
echo " <input type='submit' value='Show'>";
echo "</form>";
echo "<h2><center>Ranking of ". (is_numeric($type) ? $skills[$type] : $type) ." on ".$config['worlds'][$world]."</center></h2>";
$i = 1 + $uri;
echo "<table width='100%'>";
if(is_numeric($type)) {
echo "<tr><td width='5%'><b><center>*</center></b></td><td width='40%'><center><b>Name</b></center></td><td width='5%'><center><b>Skill</b></center></td></tr>";
foreach($players as $player) {
if(in_array($player['name'], $config['newchar_vocations'][0])) continue;
echo '<tr><td width="5%" align="center">'.$i.'</center></td><td width="40%" align="center"><a href="'.WEBSITE.'/index.php/character/view/'.$player['name'].'" class="'. ($player['online'] ? 'green' : 'red') .'">'.$player['name'].'</a></td><td width="5%" align="center">'.$player['value'].'</td></tr>';
$i++;
}
}else{
switch($type) {
case 'level':
echo "<tr><td width='5%'><b><center>*</center></b></td><td width='40%'><center><b>Name</b></center></td><td width='10%'><center><b>Exp</b></center></td><td width='5%'><center><b>Level</b></center></td></tr>";
foreach($players as $player) {
if(in_array($player['name'], $config['newchar_vocations'][0])) continue;
echo '<tr><td width="5%" align="center">'.$i.'</td><td width="40%" align="center"><a href="'.WEBSITE.'/index.php/character/view/'.$player['name'].'" class="'. ($player['online'] ? 'green' : 'red') .'">'.$player['name'].'</a></td><td width="10%" align="center">'.$player['experience'].'</td><td width="5%" align="center">'.$player['level'].'</td></tr>';
$i++;
}
break;
case 'magic':
echo "<tr><td width='5%'><b><center>*</center></b></td><td width='40%'><center><b>Name</b></center></td><td width='5%'><center><b>Level</b></center></td></tr>";
foreach($players as $player) {
if(in_array($player['name'], $config['newchar_vocations'][0])) continue;
echo '<tr><td width="5%" align="center">'.$i.'</td><td width="40%" align="center"><a href="'.WEBSITE.'/index.php/character/view/'.$player['name'].'" class="'. ($player['online'] ? 'green' : 'red') .'">'.$player['name'].'</a></td><td width="5%" align="center">'. $player['maglevel'] .'</td></tr>';
$i++;
}
break;
case 'Rebirths':
echo "<tr><td width='5%'><b><center>*</center></b></td><td width='40%'><center><b>Name</b></center></td><td width='10%'><center><b>Rebirths</b></center></td><td width='5%'><center><b>Level</b></center></td></tr>";
foreach($players as $player) {
if(in_array($player['name'], $config['newchar_vocations'][0])) continue;
echo '<tr><td width="5%" align="center">'.$i.'</td><td width="40%" align="center"><a href="'.WEBSITE.'/index.php/character/view/'.$player['name'].'" class="'. ($player['online'] ? 'green' : 'red') .'">'.$player['name'].'</a></td><td width="10%" align="center">'.$player['Rebirths'].'</td><td width="5%" align="center">'.$player['level'].'</td></tr>';
$i++;
}
break;
}
}
echo "</table>";
echo $this->pagination->create_links();
www\system\application\models\highscore_model.php
Code:
<?php
class Highscore_model extends Model {
function getSkill($skillid, $worldid, $limit = 0, $offset = 0) {
global $config;
$this->load->database();
$binds = array($worldid, $config['players_group_id_block']);
if(is_numeric($skillid) && in_array($skillid, array(1,2,3,4,5,6,7))) {
$query = 'SELECT p.name, p.online, s.value, p.level, p.vocation, p.promotion, p.Rebirths
FROM players p
INNER JOIN player_skills s on (s.player_id = p.id)
WHERE p.world_id = ? AND p.deleted = 0 AND p.group_id < ? AND s.skillid = ?
ORDER BY s.value DESC';
$binds[] = (int) ( $skillid - 1 );
}else {
$skillid = in_array($skillid, array('level', 'magic', 'Rebirths')) ? $skillid : 'level';
switch($skillid) {
case 'magic':
$query = 'SELECT name, online, maglevel, vocation, promotion, world_id
FROM players
WHERE world_id = ? AND deleted = 0 AND group_id < ? AND name != "Account Manager"
ORDER BY maglevel DESC, manaspent DESC';
break;
case 'level':
default:
$query = 'SELECT name, online, level, experience, vocation, promotion, world_id, Rebirths
FROM players
WHERE world_id = ? AND deleted = 0 AND group_id < ? AND name != "Account Manager"
ORDER BY experience DESC';
break;
case 'rebirths':
default:
$query = 'SELECT name, online, level, Rebirths
FROM players
WHERE world_id = ? AND deleted = 0 AND group_id < ? AND name != "Account Manager"
ORDER BY Rebirths DESC';
}
}
$total = $this->db->query($query, $binds);
if($limit > 0 && is_numeric($limit) && !$offset)
$query .= " LIMIT ".$limit;
if($limit >= 0 and $offset > 0 and is_numeric($offset))
$query .= " LIMIT ".$limit.",".$offset;
$data = $this->db->query($query, $binds);
return array('skill' => $skillid, 'data' => $data->result_array(), 'total' => $total->num_rows);
}
}
?>