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; } ?>