Explorar o código

Recovered 2 LGSL functions

Recovered lgsl_parse_color and lgsl_query_41 for LGSL
DieFeM %!s(int64=8) %!d(string=hai) anos
pai
achega
85517ba28b
Modificáronse 1 ficheiros con 122 adicións e 2 borrados
  1. 122 2
      OGP/php-query/lgsl/lgsl_protocol.php

+ 122 - 2
OGP/php-query/lgsl/lgsl_protocol.php

@@ -63,7 +63,7 @@ if (!function_exists('lgsl_version')) { // START OF DOUBLE LOAD PROTECTION
 		"egs"			=> "Empyrion - Galactic Survival",
 		"farcry"		=> "Far Cry",
 		"fear"			=> "F.E.A.R.",
-		"fivem"			=>	"GTA FiveM",
+		"fivem"			=> "GTA FiveM",
 		"flashpoint"	=> "Operation Flashpoint",
 		"freelancer"	=> "Freelancer",
 		"frontlines"	=> "Frontlines: Fuel Of War",
@@ -203,7 +203,7 @@ if (!function_exists('lgsl_version')) { // START OF DOUBLE LOAD PROTECTION
 		"crysiswars"	=> "06",
 		"cs2d"			=> "29",
 		"cube"			=> "24",
-		"dayzmod"  => "05",
+		"dayzmod"		=> "05",
 		"doomskulltag"	=> "27",
 		"doomzdaemon"	=> "28",
 		"doom3"			=> "10",
@@ -4073,6 +4073,126 @@ if (!function_exists('lgsl_version')) { // START OF DOUBLE LOAD PROTECTION
 	}
 //------------------------------------------------------------------------------------------------------------+
 //------------------------------------------------------------------------------------------------------------+
+	function lgsl_query_41(&$server, &$lgsl_need, &$lgsl_fp)
+	{
+		fwrite($lgsl_fp, "\xFF\xFF\xFF\xFFgetinfo xxx");
+		$buffer = fread($lgsl_fp, 4096);
+
+		if (!$buffer) {
+			return false;
+		}
+
+		lgsl_cut_byte($buffer, 18);
+
+		$data = explode('\\', $buffer);
+
+		for ($i = 0; $i < count($data); $i += 2) {
+			if ($data[$i] == 'sv_maxclients') {
+				$server['s']['playersmax'] = $data[$i + 1];
+			}
+
+			if ($data[$i] == 'clients') {
+				$server['s']['players'] = $data[$i + 1];
+			}
+
+			if ($data[$i] == 'challenge') {
+				$server['e']['challenge'] = $data[$i + 1];
+			}
+
+			if ($data[$i] == 'gamename') {
+				$server['e']['gamename'] = $data[$i + 1];
+			}
+
+			if ($data[$i] == 'protocol') {
+				$server['e']['protocol'] = $data[$i + 1];
+			}
+
+			if ($data[$i] == 'hostname') {
+				$server['s']['name'] = $data[$i + 1];
+			}
+
+			if ($data[$i] == 'gametype') {
+				$server['s']['game'] = $data[$i + 1];
+			}
+
+			if ($data[$i] == 'mapname') {
+				$server['s']['map'] = $data[$i + 1];
+			}
+
+			if ($data[$i] == 'iv') {
+				$server['e']['iv'] = $data[$i + 1];
+			}
+
+		}
+
+		return true;
+	}
+//------------------------------------------------------------------------------------------------------------+
+//------------------------------------------------------------------------------------------------------------+
+
+	function lgsl_parse_color($string, $type)
+	{
+		switch($type)
+		{
+			case "1":
+				$string = preg_replace("/\^x.../", "", $string);
+				$string = preg_replace("/\^./",	"", $string);
+
+				$string_length = strlen($string);
+				for ($i=0; $i<$string_length; $i++)
+				{
+					$char = ord($string[$i]);
+					if ($char > 160) { $char = $char - 128; }
+					if ($char > 126) { $char = 46; }
+					if ($char == 16) { $char = 91; }
+					if ($char == 17) { $char = 93; }
+					if ($char  < 32) { $char = 46; }
+					$string[$i] = chr($char);
+				}
+				break;
+
+			case "2":
+				$string = preg_replace("/\^[\x20-\x7E]/", "", $string);
+				break;
+
+			case "doomskulltag":
+				$string = preg_replace("/\\x1c./", "", $string);
+				break;
+
+			case "farcry":
+				$string = preg_replace("/\\$\d/", "", $string);
+				break;
+
+			case "painkiller":
+				$string = preg_replace("/#./", "", $string);
+				break;
+
+			case "quakeworld":
+				$string_length = strlen($string);
+				for ($i=0; $i<$string_length; $i++)
+				{
+					$char = ord($string[$i]);
+					if ($char > 141) { $char = $char - 128; }
+					if ($char < 32)  { $char = $char + 30;  }
+					$string[$i] = chr($char);
+				}
+				break;
+
+			case "savage":
+				$string = preg_replace("/\^[a-z]/",   "", $string);
+				$string = preg_replace("/\^[0-9]+/",  "", $string);
+				$string = preg_replace("/lan .*\^/U", "", $string);
+				$string = preg_replace("/con .*\^/U", "", $string);
+				break;
+
+			case "swat4":
+				$string = preg_replace("/\[c=......\]/Usi", "", $string);
+				break;
+		}
+		return $string;
+	}
+
+//---------------------------------------------------------+
 
 	function lgsl_time($seconds)
 	{