offline";
}
else
{
$datei[$c] = @fopen($filepath[$c], r);
if($datei[$c]==FALSE)
{
die "File access error!";
}
while(!feof($datei[$c]))
{
$zeile[$c] = $zeile[$c] . "\n" . fread($datei[$c], 4096);
}
fclose($datei[$c]);
//echo "$zeile
"; //can be enabled to get some kind of debug output ;-)
$splitted[$c] = explode("\n", $zeile[$c]);
$version[$c] = explode("=", $splitted[$c][1]);
$version[$c] = trim($version[$c][1]);
$status[$c] = explode("=", $splitted[$c][2]);
$status[$c] = trim($status[$c][1]);
$guests[$c] = explode("=", $splitted[$c][3]);
$guests[$c] = trim($guests[$c][1]);
$maxguests[$c] = explode("=", $splitted[$c][4]);
$maxguests[$c] = trim($maxguests[$c][1]);
$hostname[$c] = explode("=", $splitted[$c][5]);
$hostname[$c] = trim($hostname[$c][1]);
$pass[$c] = explode("=", $splitted[$c][6]);
$pass[$c] = trim($pass[$c][1]);
$track[$c] = explode("=", $splitted[$c][8]);
$track[$c] = trim($track[$c][1]);
$cars[$c] = explode("=", $splitted[$c][9]);
$cars[$c] = trim($cars[$c][1]);
$qual[$c] = explode("=", $splitted[$c][10]);
$qual[$c] = trim($qual[$c][1]);
$length[$c] = explode("=", $splitted[$c][11]);
if(trim($pass[$c]) != "")
$public[$c] = $strServerPrivate;
else
$public[$c] = $strServerPublic;
if(trim($length[$c][1]) == "" || trim($length[$c][1]) == "0")
{
$length[$c] = $strTraining;
$qual[$c] = $strNone;
}
else
{
if(trim($length[$c][0])=="hours")
{
if(trim($length[$c][1]) > 1)
$length[$c] = trim($length[$c][1]) . " " . $strHours;
else
$length[$c] = trim($length[$c][1]) . " " . $strHour;
}
else if(trim($length[$c][0])=="laps")
{
if(trim($length[$c][1]) > 1)
$length[$c] = trim($length[$c][1]) . " " . $strLaps;
else
$length[$c] = trim($length[$c][1]) . " " . $strLap;
}
if($qual[$c]=="1")
$qual[$c] .= " " . $strMinute;
else
$qual[$c] .= " " . $strMinutes;
}
$i1 = 12;
while($i1 <= count($splitted[$c]))
{
$racer[$c] = explode("=", $splitted[$c][$i1]);
$racer[$c] = trim($racer[$c][1]);
if(trim($racer[$c]!="host"))
{
$racer[$c] = get_racer($racer[$c]);
$online_racer[$c] .= $racer[$c] . "
";
}
$i1++;
}
$hostname_clear[$c] = get_clearHostname($hostname[$c]);
$host[$c] = get_hostname($hostname[$c]);
$status[$c] = get_onlineStatus($status[$c]);
$cars[$c] = get_cars($cars[$c], $showInfo[$c][4], $showLanguage);
$track[$c] = get_trackName($track[$c]);
}
if($host[$c]==NULL)
$status[$c] = "" . $strError_connect . "";
/*if($datei==FALSE && $host!=NULL)
$status = "" . $strError_file . "";*/
if($guests[$c]==0)
$online_racer[$c] = "" . $strNo_racer . "";
output($showInfo, $bgColor, $hostname_clear[$c], $host[$c], $status[$c], $version[$c], $guests[$c], $maxguests[$c], $track[$c], $cars[$c], $qual[$c], $length[$c], $online_racer[$c], $showLanguage, $public[$c]);
$c++;
}
}
//////////////////////////////////////////////////////////////////////////////////////////////
// !!! ALL FUNCTIONS USED IN THE SCRIPT WILL BE BEHIND THIS LINE !!! //
//////////////////////////////////////////////////////////////////////////////////////////////
/***************************************************\
|* output()
|* =========================
|* This function formats all gained information and
|* creates the output and also writes the output.
\***************************************************/
function output($showInfo, $bgColor, $hostname_clear, $host, $status, $version, $guests, $maxguests, $track, $cars, $qual, $length, $online_racer, $showLanguage, $strServerPub)
{
include "_data_config.php";
include setLanguage($showLanguage);
echo "
";
echo $strHostname ;
echo ": $host
";
echo $strStatus . ": $status
";
if($showInfo[8]==1)
echo "$strServerPub
";
if($showInfo[0]==1)
echo $strVersion . ": $version
";
if($showInfo[1]==1)
echo $strUserConnected . ": $guests/$maxguests
";
if($showInfo[2]==1)
echo $strTrack . ": $track
";
if($showInfo[3]==1)
echo $strCars . ": $cars
";
if($showInfo[5]==1)
echo $strQualifying . ": $qual
";
if($showInfo[6]==1)
echo $strRacelength . ": $length
";
if($showInfo[7]==1)
echo $strRacersOnline . ":
$online_racer";
echo "
";
echo "";
return FALSE;
}
/***************************************************\
|* setLanguage()
|* =========================
|* This will get the language string from the config.
|* If no language string (e.g. "enu" or "deu") is
|* supplied, English will be used by default.
\***************************************************/
function setLanguage($showLanguage)
{
$lang = strtolower($showLanguage); //Always convert the language shortcut to lower case characters
if($lang=="")
$lang = "enu";
$LangSet = "lang/lang_" . $lang . ".php";
if(is_file($LangSet)==false)
$LangSet = "lang/lang_enu.php";
return $LangSet;
}
/***************************************************\
|* get_trackName($track)
|* =========================
|* This function converts the short Track tag (e.g.
|* BL1, KY2, SO2R and so on) to the complete name
|* of the current track combination.
\***************************************************/
function get_trackName($track)
{
///////////////////////////
// BLACKWOOD
///////////////////////////
if($track=="BL1")
$trackName = "Blackwood GP";
if($track=="BL1R")
$trackName = "Blackwood GP Rev.";
if($track=="BL2")
$trackName = "Blackwood RallyX";
if($track=="BL2R")
$trackName = "Blackwood RallyX Rev.";
if($track=="BL3")
$trackName = "Blackwood Car Park";
///////////////////////////
// SOUTH CITY
///////////////////////////
if($track=="SO1")
$trackName = "South City Classic";
if($track=="SO1R")
$trackName = "South City Classic Rev.";
if($track=="SO2")
$trackName = "South City Sprint Track 1";
if($track=="SO2R")
$trackName = "South City Sprint Track 1 Rev.";
if($track=="SO3")
$trackName = "South City Sprint Track 2";
if($track=="SO3R")
$trackName = "South City Sprint Track 2 Rev.";
if($track=="SO4")
$trackName = "South City Long";
if($track=="SO4R")
$trackName = "South City Long Rev.";
if($track=="SO5")
$trackName = "South City Town Course";
if($track=="SO5R")
$trackName = "South City Town Course Rev.";
if($track=="SO6")
$trackName = "South City Chicane Route";
if($track=="SO6R")
$trackName = "South City Chicane Route Rev.";
///////////////////////////
// FERN BAY
///////////////////////////
if($track=="FE1")
$trackName = "Fern Bay Club";
if($track=="FE1R")
$trackName = "Fern Bay Club Rev.";
if($track=="FE2")
$trackName = "Fern Bay Green";
if($track=="FE2R")
$trackName = "Fern Bay Green Rev.";
if($track=="FE3")
$trackName = "Fern Bay Gold";
if($track=="FE3R")
$trackName = "Fern Bay Gold Rev.";
if($track=="FE4")
$trackName = "Fern Bay Black";
if($track=="FE4R")
$trackName = "Fern Bay Black Rev.";
if($track=="FE5")
$trackName = "Fern Bay Rallycross";
if($track=="FE5R")
$trackName = "Fern Bay Rallycross Rev.";
if($track=="FE6")
$trackName = "Fern Bay RallyX Green";
if($track=="FE6R")
$trackName = "Fern Bay RallyX Green Rev.";
///////////////////////////
// AUTOCROSS
///////////////////////////
if($track=="AU1")
$trackName = "Autocross";
if($track=="AU2")
$trackName = "Autocross Skid Pad";
if($track=="AU3")
$trackName = "Autocross Drag Strip";
if($track=="AU4")
$trackName = "Autocross 8 Lane Drag Strip";
///////////////////////////
// KYOTO
///////////////////////////
if($track=="KY1")
$trackName = "Kyoto Ring Oval";
if($track=="KY1R")
$trackName = "Kyoto Ring Oval Rev.";
if($track=="KY2")
$trackName = "Kyoto Ring National";
if($track=="KY2R")
$trackName = "Kyoto Ring National Rev.";
if($track=="KY3")
$trackName = "Kyoto Ring GP Long";
if($track=="KY3R")
$trackName = "Kyoto Ring GP Long Rev.";
///////////////////////////
// WESTHILL
///////////////////////////
if($track=="WE1")
$trackName = "Westhill International";
if($track=="WE1R")
$trackName = "Westhill International Rev.";
///////////////////////////
// ASTON
///////////////////////////
if($track=="AS1")
$trackName = "Aston Cadet";
if($track=="AS1R")
$trackName = "Aston Cadet Rev.";
if($track=="AS2")
$trackName = "Aston Club";
if($track=="AS2R")
$trackName = "Aston Club Rev.";
if($track=="AS3")
$trackName = "Aston National";
if($track=="AS3R")
$trackName = "Aston National Rev.";
if($track=="AS4")
$trackName = "Aston Historic";
if($track=="AS4R")
$trackName = "Aston Historic Rev.";
if($track=="AS5")
$trackName = "Aston Grand Prix";
if($track=="AS5R")
$trackName = "Aston Grand Prix Rev.";
if($track=="AS6")
$trackName = "Aston Grand Touring";
if($track=="AS6R")
$trackName = "Aston Grand Touring Rev.";
if($track=="AS7")
$trackName = "Aston North";
if($track=="AS7R")
$trackName = "Aston North Rev.";
return $trackName;
}
/***************************************************\
|* get_racer($racername)
|* =========================
|* This function interprets the gained nickame of a
|* racer on the server and converts the text format
|* information from LfS (^1 = red, ^7 = white,
|* ^a = * and so on) to valid HTML code to be shown
|* on the website.
\***************************************************/
function get_racer($racername)
{
if(strstr($racername, "^")==FALSE) // If no ^ is found for color changing, just use the normal racername
$racer = "" . $racername . "";
else
{
$racername = "^8" . $racername; // Small workaround to avoid some problems while parsing racername
$racername_split = explode("^", $racername);
$i = 0;
while($i < count($racername_split))
{
if(strstr(substr($racername, 0, strlen($racername_split[$i])), "^")==TRUE)
{
$lfsCode = substr($racername_split[$i], 0, 1);
// $racer .= "|lfsCode>" . $lfsCode . "" . $stringPart . "";
break;
case "1": // RED
$racer = $racer . "" . $stringPart . "";
break;
case "2": // GREEN
$racer = $racer . "" . $stringPart . "";
break;
case "3": // YELLOW
$racer = $racer . "" . $stringPart . "";
break;
case "4": // BLUE
$racer = $racer . "" . $stringPart . "";
break;
case "5": // MAGENTA
$racer = $racer . "" . $stringPart . "";
break;
case "6": // CYAN
$racer = $racer . "" . $stringPart . "";
break;
case "7": // WHITE
$racer = $racer . "" . $stringPart . "";
break;
case "8": // GREY
$racer = $racer . "" . $stringPart . "";
break;
case "a": // ^a = *
$racer = $racer . "*" . $stringPart;
break;
case "v": // ^v = |
$racer = $racer . "|" . $stringPart;
break;
}
}
$racer = "" . $racer . "";
$i++;
}
}
return $racer;
}
/***************************************************\
|* get_clearHostname($hostname)
|* ============================
|* This function formats the server string and
|* returns a string without any color information
|* for use in Join2LfS links used in the display
|* of the servername.
\***************************************************/
function get_clearHostname($hostname)
{
if(strstr($hostname, "^")==FALSE) // If no ^ is found for color changing, just use the normal hostname
$hostname_clear = $hostname;
else
{
$hostname_split = explode("^", $hostname);
$i = 0;
while($i < count($hostname_split))
{
$hostname_clear .= substr($hostname_split[$i], 1, strlen($hostname_split[$i]));
$i++;
}
}
return $hostname_clear;
}
/***************************************************\
|* get_hostname($hostname)
|* =========================
|* This function interprets the gained hostname and
|* converts the text color information from LfS
|* (^1 = red, ^7 = white and so on) to valid HTML
|* code to be shown on the website.
\***************************************************/
function get_hostname($hostname)
{
if(strstr($hostname, "^")==FALSE) // If no ^ is found for color changing, just use the normal hostname
$host = "" . $hostname . "";
else
{
$hostname_split = explode("^", $hostname);
$i = 0;
while($i < count($hostname_split))
{
if(strstr(substr($hostname, 0, strlen($hostname_split[$i])), "^")==TRUE)
{
$lfsCode = substr($hostname_split[$i], 0, 1);
//$host .= "|lfsCode>" . $lfsCode . "" . $stringPart . "";
break;
case "1": // RED
$host = $host . "" . $stringPart . "";
break;
case "2": // GREEN
$host = $host . "" . $stringPart . "";
break;
case "3": // YELLOW
$host = $host . "" . $stringPart . "";
break;
case "4": // BLUE
$host = $host . "" . $stringPart . "";
break;
case "5": // MAGENTA
$host = $host . "" . $stringPart . "";
break;
case "6": // CYAN
$host = $host . "" . $stringPart . "";
break;
case "7": // WHITE
$host = $host . "" . $stringPart . "";
break;
case "8": // GREY
$host = $host . "" . $stringPart . "";
break;
case "a": // ^a = *
$host = $host . "*" . $stringPart;
break;
case "v": // ^v = |
$racer = $racer . "|" . $stringPart;
break;
}
}
else
{
$host = $hostname_split[$i];
}
$host = "" . $host . "";
$i++;
}
}
return $host;
}
/***************************************************\
|* get_onlineStatus($status)
|* =========================
|* This function simply interprets and formats the
|* information about the server online status.
\***************************************************/
function get_onlineStatus($status)
{
// FORMAT ONLINE STATUS
if($status == "online" || $status == "ingame")
$status = "Online";
else
$status = "Offline";
return $status;
}
/***************************************************\
|* get_cars($cars, $showAll, $showLanguage)
|* =======================================
|* This function reads out which cars are allowed
|* on the current server. Afterwards the information
|* will be interpreted to show the proper car name.
\***************************************************/
function get_cars($cars, $showAll, $showLanguage)
{
include "_data_config.php";
include setLanguage($showLanguage);
$i = 0;
$j = 0;
$j2 = 0;
if(trim($cars)=="11111111111111111111" && $showInfo[4] == 1)
$carlist = $strAll;
else
{
while($i < strlen($cars))
{
if($cars[$i]==1)
$j++;
$i++;
}
$i = 0;
while($i < strlen($cars))
{
if($cars[$i]==1)
{
$j2++;
switch($i){
case 0:
$carlist .= "XFG";
break;
case 1:
$carlist .= "XRG";
break;
case 2:
$carlist .= "XRT";
break;
case 3:
$carlist .= "RB4";
break;
case 4:
$carlist .= "FXO";
break;
case 5:
$carlist .= "LX4";
break;
case 6:
$carlist .= "LX6";
break;
case 7:
$carlist .= "MRT";
break;
case 8:
$carlist .= "UF1";
break;
case 9:
$carlist .= "RAC";
break;
case 10:
$carlist .= "FZ5";
break;
case 11:
$carlist .= "FOX";
break;
case 12:
$carlist .= "XFR";
break;
case 13:
$carlist .= "UFR";
break;
case 14:
$carlist .= "FO8";
break;
case 15:
$carlist .= "FXR";
break;
case 16:
$carlist .= "XRR";
break;
case 17:
$carlist .= "FZR";
break;
case 18:
$carlist .= "BF1";
break;
case 19:
$carlist .= "FBM";
break;
}
if($j2 < $j)
$carlist .= ", ";
}
$i++;
}
}
return $carlist;
}
?>