Game Server Status Check [Paid] [Deleted]

I can't get Mumble to work. All my other servers are working just fine.
 
Last edited:
Please also remember if you cannot get it to work I offer full refunds to everyone, so don't be afraid to ask for your money back
 
With GameQ data it puts a lot of information out! And I know you can put something like

I put the map stuff in the second insert from the entire Code from below:
Code:
<?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));

        }
    }
}

Code:
$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.
 
@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.

I'm not really sure what you're suggesting to be honest it sounds like re-write of my plugin?

Can this be put into a page?

Currently not at the moment, sorry
 
I'm not really sure what you're suggesting to be honest it sounds like re-write of my plugin?

Been thinking of how it could be done the way I'm thinking, and I wasn't referring to a re-write, just an added feature.

Basically you would use a cron on the forums to send the request (invisible to the user) and that would insert it into a data store of some sort. I think it would be best to run a check ever few minutes and cache that in a database of some sort (SQLite, MySQL) personally.
 
Hi @JoeGandy,

I am a starter with coding and i'm trying to make a line of text appear when one of the servers is showed offline or online.

This is my code, i tried to add:

Code:
<xen:if is="{$status.0} != 'Offline'">
Display text when server ID 0 is offline
</xen:if>

That clearly doesnt work :(

And this is the full code:

Code:
<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>

What can i do to make this work? I want a line of text being displayed under the regular table with a note about what to do when the server is offline.
 
Top Bottom