• 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!

AAC Who's online page show false number

megazx

Graphic designer
Joined
Mar 4, 2013
Messages
443
Solutions
2
Reaction score
32
Location
Egypt
Hello this who's online page show false number of players
or it take alot of time to update the online number and players online characters

can any one help please make it right

Gesior ACC 3.8

Script
PHP:
<?PHP
$update_interval = 1;
if(count($config['site']['worlds']) > 1)
{
    $worlds .= '<i>Select world:</i> ';
    foreach($config['site']['worlds'] as $id => $world_n)
    {
        $worlds .= ' <a href="?subtopic=whoisonline&world='.$id.'">'.$world_n.'</a> , ';
        if($id == (int) $_GET['world'])
        {
            $world_id = $id;
            $world_name = $world_n;
        }
    }
    $main_content .= substr($worlds, 0, strlen($worlds)-3);
}
if(!isset($world_id))
{
    $world_id = 0;
    $world_name = $config['server']['serverName'];
}
$order = $_REQUEST['order'];
if($order == 'level')
    $orderby = 'level';
elseif($order == 'vocation')
    $orderby = 'vocation';
if(empty($orderby))
    $orderby = 'name';
$tmp_file_name = 'cache/whoisonline-'.$orderby.'-'.$world_id.'.tmp';
if(file_exists($tmp_file_name) && filemtime($tmp_file_name) > (time() - $update_interval))
{
    $tmp_file_content = explode(",", file_get_contents($tmp_file_name));
    $number_of_players_online = $tmp_file_content[0];
    $players_rows = $tmp_file_content[1];
}
else
{
    $players_online_data = $SQL->query('SELECT `players`.`looktype`, `players`.`lookaddons`, `players`.`lookhead`, `players`.`lookbody`, `players`.`looklegs`, `players`.`lookfeet`, `players`.`skulltime`, `players`.`skull`, `players`.`level`, `players`.`name`, `players`.`vocation`, `players`.`promotion`, `players`.`sex`, `players`.`lastip`, `guild_ranks`.`name` as rname, `guilds`.`name` as gname, `guilds`.`id` as gid, `accounts`.`flag` as flag FROM `players` LEFT JOIN `guild_ranks` ON `guild_ranks`.`id`=`players`.`rank_id` LEFT JOIN `guilds` ON `guild_ranks`.`guild_id`=`guilds`.`id` LEFT JOIN `accounts` ON `accounts`.`id` = `players`.`account_id` WHERE `players`.`world_id` = '.(int) $world_id.' AND `players`.`online` > 0 ORDER BY '.$orderby);
    $number_of_players_online = 0;
    foreach($players_online_data as $player)
    {
        $number_of_players_online++;
        $flag = '';
        if(!empty($player['flag']))
            $flag = '<img src = "http://images.boardhost.com/flags/'.$player['flag'].'.png" />';
        if(is_int($number_of_players_online / 2))
            $bgcolor = $config['site']['darkborder'];
        else
            $bgcolor = $config['site']['lightborder'];
             $rs = "";
if ($player['skull'] == 3)
                $rs = "<img style='border: 0;' src='./images/whiteskull.gif'/>";
        elseif ($player['skull'] == 4)
                $rs = "<img style='border: 0;' src='./images/redskull.gif'/>";
        elseif ($player['skull'] == 5)
                $rs = "<img style='border: 0;' src='./images/blackskull.gif'/>";
                elseif ($player['skull'] == 1)
                $rs = "<img style='border: 0;' src='./images/yellowskull.gif'/>";
                elseif ($player['skull'] == 2)
                $rs = "<img style='border: 0;' src='./images/greenskull.gif'/>";
              
        $players_rows .= '<TR BGCOLOR='.$bgcolor.'><TD WIDTH=10%>'.$flag.'</TD><TD WIDTH=70%><A HREF="?subtopic=characters&name='.urlencode($player['name']).'">'.$player['name'].$rs.'</A></TD><TD WIDTH=10%>'.$player['level'].'</TD>';
        if($player['gname'] != NULL) { $players_rows .= '<TD WIDTH=20%>'.$player['rname'].' of <a href="?subtopic=guilds&action=show&guild='.$player['gid'].'">'.$player['gname'].'</a></TD>'; } else { $players_rows .= '<TD WIDTH=20%>No guild</TD>'; }
        $players_rows .= '<TD WIDTH=20%>'.$vocation_name[1][$player['promotion']][$player['vocation']].'</TD></TR>';
    }
    file_put_contents($tmp_file_name, $number_of_players_online.','.$players_rows);
}
//Wykresik
$main_content.= '    <TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD WIDTH=10% CLASS=white><center><B>Players Online Chart</B></TD></TR></TABLE>
        <table align="center"><td>
<a href="http://otslist.eu/"><img border="0" src="http://otslist.eu/stats/30750'.$config['site']['otslist.eu'].'" width="100%" /></a>
    </td>
      </tr>
      </table>';
if($number_of_players_online == 0)
    //server status - server empty
    $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><B>Server Status</B></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1><TR><TD>Currently no one is playing on <b>'.$config['site']['worlds'][$world_id].'</b>.</TD></TR></TABLE></TD></TR></TABLE><BR>';
else
{
//Vocations pics
$vocs = array();
foreach($SQL->query('SELECT `vocation`, COUNT(`id`) AS `count` FROM `players` WHERE `world_id` = "'.$world_id.'" AND `online` > 0 GROUP BY `vocation`') as $entry)
      $vocs[$entry['vocation']] = $entry['count'];
$main_content .= '<table width="200" cellspacing="1" cellpadding="0" border="0" align="center">
    <tbody>
        <tr>
            <tr bgcolor="'.$config['site']['darkborder'].'">
            <td><img src="images/sorc.png" /></td>
            <td><img src="images/druid.png" /></td>
            <td><img src="images/paly.png" /></td>
            <td><img src="images/kina.png" /></td>
        </tr>
        <tr>
            <tr bgcolor="'.$config['site']['vdarkborder'].'">
            <td style="text-align: center;"><strong>Sorcerers<br /></strong></td>
            <td style="text-align: center;"><strong>Druids</strong></td>
            <td style="text-align: center;"><strong>Paladins</strong></td>
            <td style="text-align: center;"><strong>Knights</strong></td>
        </tr>
        <tr>
            <TR BGCOLOR="'.$config['site']['lightborder'].'">
            <td style="text-align: center;">'.$vocs[1].'</td>
            <td style="text-align: center;">'.$vocs[2].'</td>
            <td style="text-align: center;">'.$vocs[3].'</td>
            <td style="text-align: center;">'.$vocs[4].'</td>
        </tr>
    </tbody>
</table>
<div style="text-align: center;">&nbsp;</div>';

$main_content .= "<table width='100%' cellspacing='1'>
        <tr>
            <td style='background: ".$bgcolor.";' align='center'>
                Skull System
                <br/>
            
            </td>
        </tr>
        </table>";
    //server status - someone is online
    $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><B>Server Status</B></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1><TR><TD>Currently '.$number_of_players_online.' players are online on <b>'.$config['site']['worlds'][$world_id].'</b>.</TD></TR></TABLE></TD></TR></TABLE><BR>';
  
      //list of players
    $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD><a href="" CLASS=white >Country</a></TD><TD><A HREF="?subtopic=whoisonline&order=name&world='.$world_id.'" CLASS=white>Name</A></TD><TD><a href="" CLASS=white >Level</a></TD><TD><A HREF="?subtopic=whoisonline&order=level&world='.$world_id.'" CLASS=white>Guild</A></TD><TD><A HREF="?subtopic=whoisonline&order=vocation&world='.$world_id.'" CLASS=white>Vocation</TD></TR>'.$players_rows.'</TABLE>';
    //search bar
    $main_content .= '<BR><FORM ACTION="?subtopic=characters" METHOD=post>  <TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLPADDING=1><TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD><INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></TABLE></TD></TR></TABLE></FORM>';
}
?><?PHP
$update_interval = 1;
if(count($config['site']['worlds']) > 1)
{
    $worlds .= '<i>Select world:</i> ';
    foreach($config['site']['worlds'] as $id => $world_n)
    {
        $worlds .= ' <a href="?subtopic=whoisonline&world='.$id.'">'.$world_n.'</a> , ';
        if($id == (int) $_GET['world'])
        {
            $world_id = $id;
            $world_name = $world_n;
        }
    }
    $main_content .= substr($worlds, 0, strlen($worlds)-3);
}
if(!isset($world_id))
{
    $world_id = 0;
    $world_name = $config['server']['serverName'];
}
$order = $_REQUEST['order'];
if($order == 'level')
    $orderby = 'level';
elseif($order == 'vocation')
    $orderby = 'vocation';
if(empty($orderby))
    $orderby = 'name';
$tmp_file_name = 'cache/whoisonline-'.$orderby.'-'.$world_id.'.tmp';
if(file_exists($tmp_file_name) && filemtime($tmp_file_name) > (time() - $update_interval))
{
    $tmp_file_content = explode(",", file_get_contents($tmp_file_name));
    $number_of_players_online = $tmp_file_content[0];
    $players_rows = $tmp_file_content[1];
}
else
{
    $players_online_data = $SQL->query('SELECT `players`.`looktype`, `players`.`lookaddons`, `players`.`lookhead`, `players`.`lookbody`, `players`.`looklegs`, `players`.`lookfeet`, `players`.`skulltime`, `players`.`skull`, `players`.`level`, `players`.`name`, `players`.`vocation`, `players`.`promotion`, `players`.`sex`, `players`.`lastip`, `guild_ranks`.`name` as rname, `guilds`.`name` as gname, `guilds`.`id` as gid, `accounts`.`flag` as flag FROM `players` LEFT JOIN `guild_ranks` ON `guild_ranks`.`id`=`players`.`rank_id` LEFT JOIN `guilds` ON `guild_ranks`.`guild_id`=`guilds`.`id` LEFT JOIN `accounts` ON `accounts`.`id` = `players`.`account_id` WHERE `players`.`world_id` = '.(int) $world_id.' AND `players`.`online` > 0 ORDER BY '.$orderby);
    $number_of_players_online = 0;
    foreach($players_online_data as $player)
    {
        $number_of_players_online++;
        $flag = '';
        if(!empty($player['flag']))
            $flag = '<img src = "http://images.boardhost.com/flags/'.$player['flag'].'.png" />';
        if(is_int($number_of_players_online / 2))
            $bgcolor = $config['site']['darkborder'];
        else
            $bgcolor = $config['site']['lightborder'];
             $rs = "";
if ($player['skull'] == 3)
                $rs = "<img style='border: 0;' src='./images/whiteskull.gif'/>";
        elseif ($player['skull'] == 4)
                $rs = "<img style='border: 0;' src='./images/redskull.gif'/>";
        elseif ($player['skull'] == 5)
                $rs = "<img style='border: 0;' src='./images/blackskull.gif'/>";
                elseif ($player['skull'] == 1)
                $rs = "<img style='border: 0;' src='./images/yellowskull.gif'/>";
                elseif ($player['skull'] == 2)
                $rs = "<img style='border: 0;' src='./images/greenskull.gif'/>";
              
        $players_rows .= '<TR BGCOLOR='.$bgcolor.'><TD WIDTH=10%>'.$flag.'</TD><TD WIDTH=70%><A HREF="?subtopic=characters&name='.urlencode($player['name']).'">'.$player['name'].$rs.'</A></TD><TD WIDTH=10%>'.$player['level'].'</TD>';
        if($player['gname'] != NULL) { $players_rows .= '<TD WIDTH=20%>'.$player['rname'].' of <a href="?subtopic=guilds&action=show&guild='.$player['gid'].'">'.$player['gname'].'</a></TD>'; } else { $players_rows .= '<TD WIDTH=20%>No guild</TD>'; }
        $players_rows .= '<TD WIDTH=20%>'.$vocation_name[1][$player['promotion']][$player['vocation']].'</TD></TR>';
    }
    file_put_contents($tmp_file_name, $number_of_players_online.','.$players_rows);
}
//Wykresik
$main_content.= '    <TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD WIDTH=10% CLASS=white><center><B>Players Online Chart</B></TD></TR></TABLE>
        <table align="center"><td>
<a href="http://otslist.eu/"><img border="0" src="http://otslist.eu/stats/30750'.$config['site']['otslist.eu'].'" width="100%" /></a>
    </td>
      </tr>
      </table>';
if($number_of_players_online == 0)
    //server status - server empty
    $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><B>Server Status</B></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1><TR><TD>Currently no one is playing on <b>'.$config['site']['worlds'][$world_id].'</b>.</TD></TR></TABLE></TD></TR></TABLE><BR>';
else
{
//Vocations pics
$vocs = array();
foreach($SQL->query('SELECT `vocation`, COUNT(`id`) AS `count` FROM `players` WHERE `world_id` = "'.$world_id.'" AND `online` > 0 GROUP BY `vocation`') as $entry)
      $vocs[$entry['vocation']] = $entry['count'];
$main_content .= '<table width="200" cellspacing="1" cellpadding="0" border="0" align="center">
    <tbody>
        <tr>
            <tr bgcolor="'.$config['site']['darkborder'].'">
            <td><img src="images/sorc.png" /></td>
            <td><img src="images/druid.png" /></td>
            <td><img src="images/paly.png" /></td>
            <td><img src="images/kina.png" /></td>
        </tr>
        <tr>
            <tr bgcolor="'.$config['site']['vdarkborder'].'">
            <td style="text-align: center;"><strong>Sorcerers<br /></strong></td>
            <td style="text-align: center;"><strong>Druids</strong></td>
            <td style="text-align: center;"><strong>Paladins</strong></td>
            <td style="text-align: center;"><strong>Knights</strong></td>
        </tr>
        <tr>
            <TR BGCOLOR="'.$config['site']['lightborder'].'">
            <td style="text-align: center;">'.$vocs[1].'</td>
            <td style="text-align: center;">'.$vocs[2].'</td>
            <td style="text-align: center;">'.$vocs[3].'</td>
            <td style="text-align: center;">'.$vocs[4].'</td>
        </tr>
    </tbody>
</table>
<div style="text-align: center;">&nbsp;</div>';

$main_content .= "<table width='100%' cellspacing='1'>
        <tr>
            <td style='background: ".$bgcolor.";' align='center'>
                Skull System
                <br/>
            
            </td>
        </tr>
        </table>";
    //server status - someone is online
    $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><B>Server Status</B></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1><TR><TD>Currently '.$number_of_players_online.' players are online on <b>'.$config['site']['worlds'][$world_id].'</b>.</TD></TR></TABLE></TD></TR></TABLE><BR>';
  
      //list of players
    $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD><a href="" CLASS=white >Country</a></TD><TD><A HREF="?subtopic=whoisonline&order=name&world='.$world_id.'" CLASS=white>Name</A></TD><TD><a href="" CLASS=white >Level</a></TD><TD><A HREF="?subtopic=whoisonline&order=level&world='.$world_id.'" CLASS=white>Guild</A></TD><TD><A HREF="?subtopic=whoisonline&order=vocation&world='.$world_id.'" CLASS=white>Vocation</TD></TR>'.$players_rows.'</TABLE>';
    //search bar
    $main_content .= '<BR><FORM ACTION="?subtopic=characters" METHOD=post>  <TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLPADDING=1><TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD><INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></TABLE></TD></TR></TABLE></FORM>';
}
?>
 
I had a similar problem with ZNOTE, turns out it wasnt AAC's fault but the server.

Make this as a talkaction
Code:
db.executeQuery("UPDATE `players` SET `online`='0';")
, /closeserver to kick everyone off and then run the talkaction, restart the server and it should be good, worked for me.
Good luck!
 
Back
Top