Joe, I have just downloaded this & tried to install it (both 1.3.8 version and 1.4.0 versions on your store page) - Both are displaying the following errors. View attachment 93361
Any help in fixing this would be appreciated.
I get the same errors for my servers, and teamspeak is just blank.
I am curious about mumble aswell. Is it working?
- Updated GameQ protocols, adds support for a few new games
Can we get some Screen Shots of what it looks like?
- Updated page description to be more up to date
- Updated the icon
- Tested on newer versions of xenforo
Anyway you can add map pics info under each server with Steam Join?
<?php
/**
* <DZCP-Extended Edition>
* @package: DZCP-Extended Edition
* @author: DZCP Developer Team || Hammermaps.de Developer Team
* @link: http://www.dzcp.de || http://www.hammermaps.de
*/
function server($serverID = 0)
{
global $picformat;
if(!fsockopen_support())
return '<center style="margin:2px 0">'.error(_fopen,'0',false).'</center>';
$servernavi=''; $st = 0;
if(empty($serverID))
{
$qry = db("SELECT id FROM ".dba::get('server')." WHERE navi = '1' AND game != 'nope'");
while($get = _fetch($qry))
{
$servernavi .= "
<div class=\"navGameServer\" id=\"navGameServer_".$get['id']."\">
<div style=\"width:100%;padding:10px 0;text-align:center\"><img src=\"inc/images/ajax_loading.gif\" alt=\"\" /></div>
<script language=\"javascript\" type=\"text/javascript\">DZCP.initDynLoader('navGameServer_".$get['id']."','server','&serverID=".$get['id']."');</script></div>";
$st++;
}
return empty($servernavi) ? '<center style="margin:2px 0">'._no_server_navi.'</center>' : (!$st ? '<table class="navContent" cellspacing="0">'.$servernavi.'</table>' : $servernavi);
}
else
{
if(fsockopen_support())
{
$sID = convert::ToInt($_GET['serverID']);
$get = db_stmt("SELECT * FROM ".dba::get('server')." WHERE `id` = ?",array('i', $sID),false,true);
$cache_hash = md5($get['ip'].':'.$get['port'].'_'.$get['game']);
if(Cache::check('server_'.$cache_hash))
{
$get['ip'] = str_replace(' ', '', $get['ip']);
GameQ::addServers(array(array('id' => 'gs' ,'type' => $get['game'], 'host' => $get['ip'].':'.$get['port'], 'query_port' => empty($get['qport']) ? false : $get['qport'])));
GameQ::setOption('timeout', 6);
$server = GameQ::requestData();
$server = $server['gs'];
if(!empty($server) && $server && $server['game_online'] && !(show_gameserver_debug && show_debug_console))
Cache::set('server_'.$cache_hash,$server,settings('cache_server'));
}
else
$server = Cache::get('server_'.$cache_hash);
if(!empty($server) && $server && $server['game_online']) //Online
{
$image_status = 'inc/images/online.png'; //Server Status
$image_secure = ''; $icon_mod = '';
// Use protocol
switch($server['game_protocol'])
{
case 'source': //HL2,HL1,Brink,CODW3 etc. * Source & Goldsource
$game_icon = $server['game_engine'].'/'.$server['game_dir'];
$icon_mod = $server['game_engine'].'/'.$server['game_mod'];
GameQ::mkdir_img('gameicons/'.$server['game_engine']);
break;
case 'gamespy': //BF1942,BF2,BF2142,etc
$game_icon = $server['game_protocol'].'/'.$server['game_engine'].'/'.$server['game_dir'];
$icon_mod = $server['game_protocol'].'/'.$server['game_engine'].'/'.$server['game_mod'];
GameQ::mkdir_img('gameicons/'.$server['game_protocol'].'/'.$server['game_engine']);
break;
case 'gamespy2': //Arma 2
$game_icon = $server['game_protocol'].'/'.$server['game_engine'].'/'.$server['game_dir'];
$icon_mod = $server['game_protocol'].'/'.$server['game_engine'].'/'.$server['game_mod'];
GameQ::mkdir_img('gameicons/'.$server['game_protocol'].'/'.$server['game_engine']);
break;
case 'gamespy3': //Arma 3,BF2,UT3
$game_icon = $server['game_protocol'].'/'.$server['game_engine'].'/'.$server['game_dir'];
$icon_mod = $server['game_protocol'].'/'.$server['game_engine'].'/'.$server['game_mod'];
GameQ::mkdir_img('gameicons/'.$server['game_protocol'].'/'.$server['game_engine']);
break;
case 'bfbc2': //BFBC2
case 'bf3': //BF3
$game_icon = $server['game_engine'].'/'.$server['game_protocol'].'/'.$server['game_dir'];
$icon_mod = $server['game_engine'].'/'.$server['game_protocol'].'/'.$server['game_mod'];
GameQ::mkdir_img('gameicons/'.$server['game_engine'].'/'.$server['game_protocol']);
break;
case 'etqw':
case 'doom3':
case 'quake2': //Quake 2
case 'quake3': //Quake 3
case 'quake4': //Quake 4
$game_icon = $server['game_protocol'].'/'.$server['game_dir'];
$icon_mod = $server['game_protocol'].'/'.$server['game_mod'];
GameQ::mkdir_img('gameicons/'.$server['game_protocol']);
break;
}
$image_secure = ($server['game_secure']['enable'] ? '<img src="inc/images/'.$server['game_secure']['pic'].'.png" alt="" title="'.$server['game_secure']['name'].'" class="icon" />' : '');
API_EVENTS::server_image_map($server['game_map_pic_dir'].'/'.strtolower(str_ireplace(' ', '_', $server['game_map'])),$server['game_name_long'],strtolower(str_ireplace(' ', '_', $server['game_map'])),!empty($server['game_mod']) ? $icon_mod : $game_icon); //API Events
//Image * Maps
$image_map = 'no_map.gif'; $pic_found = false; $flash_found = false;
foreach($picformat AS $end)
{
if(file_exists(basePath.'/inc/images/maps/'.$server['game_map_pic_dir'].'/'.strtolower(str_ireplace(' ', '_', $server['game_map'])).'.'.$end))
{
$pic_found = true;
$image_map = $server['game_map_pic_dir'].'/'.strtolower(str_ireplace(' ', '_', $server['game_map'])).'.'.$end;
break;
}
}
$game_icon_inp = GameQ::search_game_icon($game_icon);
$game_icon = $game_icon_inp['image'];
unset($game_icon_inp);
## List Player ##
$players = '-';
if(!empty($server['game_players']) && count($server['game_players']) >= 1)
{
$players = ''; $i = 0;
foreach($server['game_players'] as $player)
{ $players .= str_replace("'", '', $player['player_name']).' | '; if(!empty($player['player_name'])) $i++; }
$players = substr($players, 0, -3);
if(!$i) $players = '-';
}
if(!empty($server['game_hostname']))
db("UPDATE `".dba::get('server')."` SET `name` = '".string::encode($server['game_hostname'])."' WHERE `id` = ".$get['id'].";"); //Update Hostname to DB
}
else //Offlne
{
//Server Status
$server['game_hostname'] = $get['name'];
$server['game_current_players'] = '0';
$server['game_max_players'] = '0';
$server['game_num_bot'] = '0';
$server['game_password'] = false;
$server['game_map_name'] = '';
$server['game_join_link'] = '';
$server['game_name'] = '';
$server['game_mod_name'] = '';
$server['game_num_players'] = '0';
$server['game_dedicated'] = false;
$server['game_pwd'] = false;
$server['game_os'] = false;
$image_secure = ''; $players = '-';
$image_status = 'inc/images/offline.png'; //Server Status
$image_map = 'offline.gif'; //Map Image
$game_icon = 'inc/images/gameicons/unknown.gif';
}
//Custom Icon
if(!empty($get['custom_icon']))
{
if(file_exists(basePath.'/inc/images/gameicons/custom/'.$get['custom_icon']))
$game_icon = 'inc/images/gameicons/custom/'.$get['custom_icon'];
}
if(check_mod_rewrite())
{
$endung = explode(".", $image_map);
$endung = strtolower($endung[count($endung)-1]);
$map_path = str_replace('.'.$endung,'',$image_map);
$image_map = '<img src="inc/ajax/thumbgen/maps/'.$map_path.'_160_120_'.filemtime(basePath.'/inc/images/maps/'.$image_map).'.'.$endung.'" class="navServerPic" alt="" />';
}
else
$image_map = '<img src="inc/ajax.php?loader=thumbgen&file=maps/'.$image_map.'&width=160&height=120&time='.filemtime(basePath.'/inc/images/maps/'.$image_map).'" class="navServerPic" alt="" />';
$image_pwd = ($server['game_password'] ? '<img src="inc/images/closed.png" alt="" alt="" title="Server Password" class="icon" />' : ''); //Server Password
$dedicated = ($server['game_dedicated'] ? '<img src="inc/images/dedicated.png" alt="" title="Dedicated Server" class="icon" />' : ''); //Dedicated Server
$os = ($server['game_os'] ? '<img src="inc/images/'.$server['game_os'].'_os.png" alt="" title="'.($server['game_os'] == 'windows' ? 'Windows' : 'Linux').' Server" class="icon" />' : ''); //Server OS
$mod = (!empty($server['game_mod_name_long']) ? '<span class="fontBold">Mod:</span> '.$server['game_mod_name_long'].' <img src="'.$icon_mod.'" alt="" class="icon" /><br />' : '');
$pwds = (!empty($get['pwd']) && permission("gs_showpw") && $server['game_password'] ? show(_server_pwd, array("pwd" => string::decode($get['pwd']))) : '');
$gtype = (!empty($server['game_type']) ? show(_server_gtype, array("type" => string::decode($server['game_type']))) : '');
$bots = (!empty($server['game_num_bot']) ? show(_server_bots, array("bots" => string::decode($server['game_num_bot']))) : '');
$servername = jsconvert(string::decode(cut($server['hostname'],($servermenu=settings('l_servernavi')))));
$servernameout = (!empty($server['game_hostname'])) ? $server['game_hostname'] : _navi_gsv_no_name_available;
$info = 'onmouseover="DZCP.showInfo(\''.$servernameout.'\', \'IP/Port:;;'._navi_gsv_game.':;Map:;'._navi_gsv_players_online.':;'._navi_gsv_on_the_game.':\', \''.$get['ip'].':'.$get['port'].';;'.jsconvert(string::decode('<img src="'.$game_icon.'" alt="" class="icon" />')).' '.$server['game_name_long'].';'.(array_key_exists('game_maptitle', $server) ? $server['game_maptitle'] : (empty($server['game_map']) ? '-' : $server['game_map'])).';'.$server['game_num_players'].' / '.$server['game_max_players'].';'.$players.'\')" onmouseout="DZCP.hideInfo()"';
return show("menu/server", array("host" => cut(string::decode($server['game_hostname']),$servermenu,true),
"ip" => $get['ip'],
"map" => (array_key_exists('game_maptitle', $server) ? $server['game_maptitle'] : (empty($server['game_map']) ? '-' : $server['game_map'])),
"image_map" => $image_map,
"data_gamemod" => $server['game_name_short'],
"icon" => $game_icon,
"pwd" => $pwds,
"launch" => (empty($server['game_join_link']) ? '-' : $server['game_join_link']),
"port" => $get['port'],
"id" => $get['id'],
"aktplayers" => $server['game_num_players'],
"maxplayers" => $server['game_max_players'],
"info" => $info));
}
}
}
$image_secure = ($server['game_secure']['enable'] ? '<img src="inc/images/'.$server['game_secure']['pic'].'.png" alt="" title="'.$server['game_secure']['name'].'" class="icon" />' : '');
API_EVENTS::server_image_map($server['game_map_pic_dir'].'/'.strtolower(str_ireplace(' ', '_', $server['game_map'])),$server['game_name_long'],strtolower(str_ireplace(' ', '_', $server['game_map'])),!empty($server['game_mod']) ? $icon_mod : $game_icon); //API Events
//Image * Maps
$image_map = 'no_map.gif'; $pic_found = false; $flash_found = false;
foreach($picformat AS $end)
{
if(file_exists(basePath.'/inc/images/maps/'.$server['game_map_pic_dir'].'/'.strtolower(str_ireplace(' ', '_', $server['game_map'])).'.'.$end))
{
$pic_found = true;
$image_map = $server['game_map_pic_dir'].'/'.strtolower(str_ireplace(' ', '_', $server['game_map'])).'.'.$end;
break;
}
}
@JoeGandy I love this plugin now that I got it to work (which it was missing something that I had to do a work around for, oh well)!
I do have a small issue though: I would like it if it was made to not do POST requests with the information and instead did it via some other means, or at least not send the server's information directly over.
Can this be put into a page?
I'm not really sure what you're suggesting to be honest it sounds like re-write of my plugin?
<xen:if is="{$status.0} != 'Offline'">
Display text when server ID 0 is offline
</xen:if>
<xen:require css="stentor_server_list_maintemplate.css" />
<div class="section">
<div class="secondaryContent statsList" id="boardStats">
<h3>Server status</h3>
<table class="server_list_table">
<xen:if is="{$icons_enable} == 1">
<th></th>
</xen:if>
<th>Naam</th>
<th>Status</th>
<xen:if is="{$enable_join_urls} == 1">
<th></th>
</xen:if>
<xen:foreach loop="$name" key="$key" value="$curBanner" i="$i" count="$count">
<tr id="0-{$key}">
<xen:if is="{$icons_enable} == 1">
<td>
<img class="stentor_icon Tooltip" src="{$image.{$key}}" title="{$name.{$key}}" data-tipclass="flipped"/>
</td>
</xen:if>
<td id="1-{$key}" class="name main">{$name.{$key}}</td>
<td id="2-{$key}" class="ip main"><input value="{$ip.{$key}}:{$port.{$key}}"/</td>
<td id="3-{$key}" class="{$status.{$key}}">{$status.{$key}}</td>
<xen:if is="{$enable_join_urls} == 1">
<td>
<xen:if is="{$join_urls.{$key}} != 'null'">
<a href="{$join_urls.{$key}}">Join</a>
</xen:if>
</td>
</xen:if>
</tr>
</xen:foreach>
</table>
</div>
<xen:if is="{$status.0} != 'Offline'">
Display text when server ID 0 is offline
</xen:if>
<xen:if is="{$hover} == 1">
<script>
$('.server_list_table').hover(function (){
$('.name').hide();
$('.ip').show();
});
$('.server_list_table').mouseleave(function (){
$('.name').show();
$('.ip').hide();
});
</script>
</xen:if>
We use essential cookies to make this site work, and optional cookies to enhance your experience.