Austinb / GameQ

A PHP Gameserver Status Query Library
https://austinb.github.io/GameQ/
GNU Lesser General Public License v3.0
403 stars 136 forks source link

How to get players score name and time online #113

Closed Supryk closed 10 years ago

Supryk commented 11 years ago

How to get players score name and time online

Austinb commented 11 years ago

Need to know the specific game you are talking about. Some games provide this information others do not. Please check closed tickets for previous answers.

Supryk commented 11 years ago

gmmm games cs16 cscz css ccgo teamspeak3 minecraft samp ventrilo

thanks for replay

Supryk commented 11 years ago

pleas show me how do this

Supryk commented 11 years ago

[php]function serversboard_start() { global $serversboard, $mybb, $templates, $db, $theme, $lang; $lang->load("serversboard"); if($mybb->settings['serversboard_onoff'] == '1') { $query = $db->simple_select('serversboard', '*'); while($server = $db->fetch_array($query)) { if($server['type'] == 0) { $server['type'] = 'cs16'; } elseif($server['type'] == 1) { $server['type'] = 'cscz'; } elseif($server['type'] == 2) { $server['type'] = 'css'; } elseif($server['type'] == 3) { $server['type'] = 'csgo'; } elseif($server['type'] == 4) { $server['type'] = 'teamspeak3'; } elseif($server['type'] == 5) { $server['type'] = 'ventrilo'; } elseif($server['type'] == 6) { $server['type'] = 'minecraft'; } elseif($server['type'] == 7) { $server['type'] = 'samp'; }

require_once MYBB_ROOT."inc/plugins/gameq/GameQ.php";

$server['ip'] = ($_GET['ip'])?$_GET['ip']:$server['ip'];

$servers = array(
    array(
        'type' => $server['type'],
        'host' => $server['ip'],
    ),
);

$gq = new GameQ();
$gq->addServers($servers);
$gq->setOption('timeout', 4);
$gq->setFilter('normalise');
$results = $gq->requestData();
foreach($results as $id => $data)

if($data['gq_online'] == 0) 
{
$data['gq_online'] = '<span class="server" style="background:red; margin-top: 3px;">OFFLINE</span>';
$data['gq_procents'] = 0;
$data['gq_numplayers'] = 0;
$data['gq_maxplayers'] = 0;
} 
elseif($data['gq_online'] == 1) 
{
$data['gq_online'] = "<span class='server' style='background:#66CC00; margin-top: 3px;'>ONLINE</span>";
$data['gq_procents'] = round($data['gq_numplayers'] / $data['gq_maxplayers'] * 100);
}

$data['gq_ip'] = $server['ip'];
$search['gq_host'] = array("@costam.pl", "@ costam.pl", "@ costam.pl");
$replace['gq_host'] = "";
$data['gq_hostname'] = str_replace($search['gq_host'], $replace['gq_host'], $data['gq_hostname']);

$data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'"><img src="inc/plugins/gameq/icons/gt.png"/></a>';

if($data['gq_type'] == 'cs16')
{
$data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="inc/plugins/gameq/icons/join.png"/></a>';
$data['gq_desc'] = 'Counter-Strike';
} 
elseif($data['gq_type'] == 'cscz')
{
$data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="inc/plugins/gameq/icons/join.png"/></a>';
$data['gq_desc'] = 'Counter-Strike Condition Zero';
} 
elseif($data['gq_type'] == 'css')
{
$data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="inc/plugins/gameq/icons/join.png"/></a>';
$data['gq_desc'] = 'Counter-Strike Source';
} 
elseif($data['gq_type'] == 'csgo')
{
$data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="inc/plugins/gameq/icons/join.png"/></a>';
$data['gq_desc'] = 'Counter-Strike Global Offensive';
} 
elseif($data['gq_type'] == 'teamspeak3')
{
$data['gq_join'] = '<a href="ts3server://'.$data['gq_ip'].'"/><img src="inc/plugins/gameq/icons/join.png"/></a>';
$data['gq_desc'] = 'Team Speak 3';
} 
elseif($data['gq_type'] == 'ventrilo')
{
$data['gq_join'] = '<a href="ventrilo://'.$data['gq_ip'].'"/><img src="inc/plugins/gameq/icons/join.png"/></a>';
$data['gq_desc'] = 'Ventrilo';
} 
elseif($data['gq_type'] == 'minecraft')
{
$data['gq_desc'] = 'MineCraft';
} 
elseif($data['gq_type'] == 'samp')
{
$data['gq_desc'] = 'San Andreas Multi Player';
} 

$data['gq_icon'] = "<img src='inc/plugins/gameq/icons/".$data['gq_type'].".png'/>";

eval('$serversboard_row .= "'.$templates->get("serversboard_row").'";');

$color = $mybb->settings['serversboard_color'];
$servers = $db->num_rows($query);
$slots = $slots + $data['gq_maxplayers'];
$gamers = $gamers + $data['gq_numplayers'];
$emptyslots = $slots - $gamers;
$procentgamers = round($gamers/$slots * 100);

}

if($mybb->settings['serversboard_summation'] == '1')
{
eval('$serversboard_summation = "'.$templates->get('serversboard_summation').'";');
}
eval('$serversboard = "'.$templates->get('serversboard').'";');
}

}[/php]

Pleas help

when i add in templates

$data['players']

show me array

Austinb commented 11 years ago

$data['players'] is an array of players if count() > 0. Each index has what available information there is for players returned. As far as time online not all games support.

I would highly recommend doing something like

echo '<pre>';
print_r($results); exit;

in a webpage so you can see the output and its structure better. All of the available data points provided are returned unless the protocol has changed.

Supryk commented 11 years ago

ok but how Nmae Score time $data['name'] $data['score'] $data['time']

no one under on i wont add this in title(html)