Skip to content

Commit

Permalink
Changed minor version
Browse files Browse the repository at this point in the history
Added Cryofall, GTA / Mafia Connected, Sonic Robo Blast 2 support
  • Loading branch information
tltneon authored Dec 19, 2023
1 parent 6add034 commit f962ddf
Show file tree
Hide file tree
Showing 4 changed files with 142 additions and 11 deletions.
18 changes: 13 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/tltneon/lgsl?color=green&style=for-the-badge)](https://github.com/tltneon/lgsl/releases)
![PHP](https://img.shields.io/badge/PHP-5.4--8.2.0dev-brightgreen?style=for-the-badge&logo=php)
![MySQL](https://img.shields.io/badge/MySQL-5.5--8.0.x-brightgreen?style=for-the-badge&logo=mysql)
![MariaDB](https://img.shields.io/badge/MariaDB-5.5--10.8.x-brightgreen?style=for-the-badge&logo=mariadb)
![PHP](https://img.shields.io/badge/PHP-5.4+-brightgreen?style=for-the-badge&logo=php)
![MySQL](https://img.shields.io/badge/MySQL-5.5+-brightgreen?style=for-the-badge&logo=mysql)
![MariaDB](https://img.shields.io/badge/MariaDB-5.5+-brightgreen?style=for-the-badge&logo=mariadb)

[![GitHub followers](https://img.shields.io/github/followers/tltneon?style=for-the-badge)](https://github.com/tltneon?tab=followers)
[![GitHub stars](https://img.shields.io/github/stars/tltneon/lgsl?style=for-the-badge)](https://github.com/tltneon/lgsl/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/tltneon/lgsl?style=for-the-badge)](https://github.com/tltneon/lgsl/fork)
[![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/tltneon/lgsl?style=for-the-badge)](https://github.com/tltneon/lgsl/archive/master.zip)
[![Packagist](https://img.shields.io/packagist/l/tltneon/lgsl?style=for-the-badge)](https://github.com/tltneon/lgsl/blob/master/LICENSE)
# LGSL v6.2.0 (Live Game Server List)
Based-off LGSL v5.8 (stand-alone version) from www.greycube.com. This is almost original version of LGSL with [new features](https://github.com/tltneon/lgsl#changelog) and working on PHP 5.4-8.x and MySQL 5.5-8.0.x or MariaDB 5.5-10.8.x. May be upgraded from LGSL 5.8 and older.
# LGSL v6.2.1 (Live Game Server List)
Based-off LGSL v5.8 (stand-alone version) from www.greycube.com.

This is almost original version of LGSL with [new features](https://github.com/tltneon/lgsl#changelog) and working on PHP 5.4+ and MySQL 5.5+ or MariaDB 5.5+.
LGSL v6 is LTS version, if you want to try new features - see [LGSL7 branch](https://github.com/tltneon/lgsl/tree/lgsl7).

May be easily upgraded from LGSL 5.8 and older.

## [Live DEMOs](https://github.com/tltneon/lgsl/wiki/Who-uses-LGSL) | [How to install]( https://github.com/tltneon/lgsl/wiki/How-to-install-LGSL) | [Supported games](https://github.com/tltneon/lgsl/wiki/Supported-Games,-Query-protocols,-Default-ports) | [Features list](https://github.com/tltneon/lgsl/wiki/features) | [Wiki](https://github.com/tltneon/lgsl/wiki)

Expand All @@ -21,6 +26,9 @@ Feel free to make [pull request](https://github.com/tltneon/lgsl)! Also you can
![lgsl Server List on mobile device](https://i.imgur.com/oui8Nya.png)

## [Changelog](https://github.com/tltneon/lgsl/wiki/Changelog)
#### v6.2.1
- **Added Euro Truck Simulator 2, American Truck Simulator, Mumble, ECO, Cryofall, GTA / Mafia Connected, Sonic Robo Blast 2 support**
- **Minor fixes**
#### v6.2.0
- **Added Preloader feature**
- *Loading animation by (https://codepen.io/Bilal1909)*
Expand Down
2 changes: 1 addition & 1 deletion index.php
Original file line number Diff line number Diff line change
Expand Up @@ -102,4 +102,4 @@ function alertContents() {
?>
</body>
</html>
<!-- Powered by LGSL v6.2.0; <?php echo "Page loaded: ".round(microtime(true) - $time, 6)."s";?> -->
<!-- Powered by LGSL v6.2.1; <?php echo "Page loaded: ".round(microtime(true) - $time, 6)."s";?> -->
2 changes: 1 addition & 1 deletion lgsl_files/lgsl_class.php
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@ function lgsl_server_misc($server)
$misc['text_location'] = lgsl_text_location($server['o']['location']);
$misc['name_filtered'] = lgsl_string_html($server['s']['name'], FALSE, 20); // LEGACY
$misc['connect_filtered'] = ($server['b']['type'] == "discord" ? "https://discord.gg/" . $server['b']['ip'] : $server['b']['ip'] . ":" . $server['b']['c_port'] );
$misc['software_link'] = lgsl_software_link($server['b']['type'], $server['b']['ip'], $server['b']['c_port'], $server['b']['q_port'], $server['b']['s_port']);
$misc['software_link'] = lgsl_software_link($server['b']['type'], $server['b']['ip'], $server['b']['c_port'], $server['b']['q_port'], $server['b']['s_port'], $server['s']['game']);
$misc['location_link'] = lgsl_location_link($server['o']['location']);

return $misc;
Expand Down
131 changes: 127 additions & 4 deletions lgsl_files/lgsl_protocol.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ function lgsl_type_list()
"callofduty4" => "Call Of Duty 4 / CoD4X",
"cncrenegade" => "Command and Conquer: Renegade",
"conanexiles" => "Conan Exiles",
"cryofall" => "Cryofall",
"crysis" => "Crysis",
"crysiswars" => "Crysis Wars",
"cs2d" => "Counter-Strike 2D",
Expand All @@ -69,6 +70,7 @@ function lgsl_type_list()
"ghostrecon" => "Ghost Recon",
"graw" => "Ghost Recon: Advanced Warfighter",
"graw2" => "Ghost Recon: Advanced Warfighter 2",
"gtac" => "GTA Connected",
"gtr2" => "GTR 2",
"had2" => "Hidden and Dangerous 2",
"halflife" => "Half-life Steam Protocol (CS 1.6, etc)",
Expand All @@ -81,6 +83,7 @@ function lgsl_type_list()
"killingfloor" => "Killing Floor",
"kingpin" => "Kingpin: Life of Crime",
"m2mp" => "Mafia II Multiplayer",
"mafiac" => "Mafia Connected",
"minecraft" => "Minecraft",
"mohaa" => "Medal of Honor: Allied Assault",
"mohaab" => "Medal of Honor: Allied Assault Breakthrough",
Expand Down Expand Up @@ -116,6 +119,7 @@ function lgsl_type_list()
"sof2" => "Soldier of Fortune 2",
"soldat" => "Soldat",
"source" => "Source Protocol ( Half-Life 2, etc. )",
"srb2" => "Sonic Robo Blast 2",
"stalker" => "S.T.A.L.K.E.R.",
"stalkercop" => "S.T.A.L.K.E.R. Call of Pripyat",
"stalkercs" => "S.T.A.L.K.E.R. Clear Sky",
Expand Down Expand Up @@ -187,6 +191,7 @@ function lgsl_protocol_list()
"callofduty4" => "02",
"cncrenegade" => "03",
"conanexiles" => "05",
"cryofall" => "44",
"crysis" => "06",
"crysiswars" => "06",
"cs2d" => "29",
Expand Down Expand Up @@ -217,13 +222,15 @@ function lgsl_protocol_list()
"ghostrecon" => "19",
"graw" => "06",
"graw2" => "09",
"gtac" => "45",
"gtr2" => "15",
"jediknight2" => "02",
"jediknightja" => "02",
"jc2mp" => "06",
"killingfloor" => "13",
"kingpin" => "03",
"m2mp" => "39",
"mafiac" => "45",
"minecraft" => "06",
"mohaa" => "03",
"mohaab" => "03",
Expand Down Expand Up @@ -264,6 +271,7 @@ function lgsl_protocol_list()
"sof2" => "02",
"soldat" => "08",
"source" => "05",
"srb2" => "46",
"stalker" => "06",
"stalkercop" => "09",
"stalkercs" => "09",
Expand Down Expand Up @@ -304,7 +312,7 @@ function lgsl_protocol_list()
//------------------------------------------------------------------------------------------------------------+
//------------------------------------------------------------------------------------------------------------+

function lgsl_software_link($type, $ip, $c_port, $q_port, $s_port)
function lgsl_software_link($type, $ip, $c_port, $q_port, $s_port, $game)
{
$lgsl_software_link = array(
"aarmy" => "qtracker://{IP}:{S_PORT}?game=ArmyOperations&action=show",
Expand All @@ -331,6 +339,7 @@ function lgsl_software_link($type, $ip, $c_port, $q_port, $s_port)
"callofduty4" => "cod4://{IP}:{S_PORT}",
"cncrenegade" => "qtracker://{IP}:{S_PORT}?game=CommandConquerRenegade&action=show",
"conanexiles" => "steam://connect/{IP}:{C_PORT}",
"cryofall" => "steam://connect/{IP}:{C_PORT}",
"crysis" => "qtracker://{IP}:{S_PORT}?game=Crysis&action=show",
"crysiswars" => "qtracker://{IP}:{S_PORT}?game=CrysisWars&action=show",
"cs2d" => "steam://connect/{IP}:{C_PORT}",
Expand All @@ -356,6 +365,7 @@ function lgsl_software_link($type, $ip, $c_port, $q_port, $s_port)
"ghostrecon" => "http://en.wikipedia.org/wiki/Tom_Clancy's_Ghost_Recon",
"graw" => "qtracker://{IP}:{S_PORT}?game=GhostRecon&action=show",
"graw2" => "http://en.wikipedia.org/wiki/Tom_Clancy's_Ghost_Recon_Advanced_Warfighter_2",
"gtac" => "gtac://connect/{IP}:{C_PORT}/gta:{GAME}",
"gtr2" => "http://en.wikipedia.org/wiki/GTR2",
"had2" => "http://en.wikipedia.org/wiki/Hidden_&_Dangerous_2",
"halflife" => "steam://connect/{IP}:{C_PORT}",
Expand All @@ -368,6 +378,7 @@ function lgsl_software_link($type, $ip, $c_port, $q_port, $s_port)
"killingfloor" => "steam://connect/{IP}:{C_PORT}",
"kingpin" => "qtracker://{IP}:{S_PORT}?game=Kingpin&action=show",
"m2mp" => "https://m2mp.de/",
"mafiac" => "mafiac://connect/{IP}:{C_PORT}/mafia:{GAME}",
"minecraft" => "minecraft://{IP}:{C_PORT}/",
"mohaa" => "qtracker://{IP}:{S_PORT}?game=MedalofHonorAlliedAssault&action=show",
"mohaab" => "qtracker://{IP}:{S_PORT}?game=MedalofHonorAlliedAssaultBreakthrough&action=show",
Expand Down Expand Up @@ -403,6 +414,7 @@ function lgsl_software_link($type, $ip, $c_port, $q_port, $s_port)
"sof2" => "qtracker://{IP}:{S_PORT}?game=SoldierOfFortune2&action=show",
"soldat" => "soldat://{IP}:{C_PORT}",
"source" => "steam://connect/{IP}:{C_PORT}",
"srb2" => "javascript:prompt('Put it into console:', '{IP}:{C_PORT}')",
"stalker" => "qtracker://{IP}:{S_PORT}?game=STALKER_ShadowChernobyl&action=show",
"stalkercop" => "qtracker://{IP}:{S_PORT}?game=STALKER_CallOfPripyat&action=show",
"stalkercs" => "qtracker://{IP}:{S_PORT}?game=STALKER_ClearSky&action=show",
Expand Down Expand Up @@ -442,7 +454,7 @@ function lgsl_software_link($type, $ip, $c_port, $q_port, $s_port)
if (!isset($lgsl_software_link[$type])) { $type = str_replace("_", "", $type); }

// INSERT DATA INTO STATIC LINK - CONVERT SPECIAL CHARACTERS - RETURN
return htmlentities(str_replace(array("{IP}", "{C_PORT}", "{Q_PORT}", "{S_PORT}"), array($ip, $c_port, $q_port, $s_port), $lgsl_software_link[$type]), ENT_QUOTES);
return htmlentities(str_replace(array("{IP}", "{C_PORT}", "{Q_PORT}", "{S_PORT}", "{GAME}"), array($ip, $c_port, $q_port, $s_port, $game), $lgsl_software_link[$type]), ENT_QUOTES);
}

//------------------------------------------------------------------------------------------------------------+
Expand Down Expand Up @@ -4277,6 +4289,117 @@ function lgsl_query_43(&$server, &$lgsl_need, &$lgsl_fp) // Mumble
$server['s']['playersmax'] = lgsl_unpack(lgsl_cut_byte($buffer, 4), "N");
return TRUE;
}

function lgsl_query_44(&$server, &$lgsl_need, &$lgsl_fp) { // Cryofall (by tltneon)
fwrite($lgsl_fp, "\x05\x0b\x00\x00\x00\x86\x76\x41\x31\xa0\x87\xdb\x08\x10\x02\x00\x55\xf0\x86\xff\xde\x58\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x43\x72\x79\x6f\x46\x61\x6c\x6c");
$buffer = fread($lgsl_fp, 4096);
if (!$buffer) {
return false;
}
fwrite($lgsl_fp, "\x0c\x0a\x00\x01\x00\x00\x02\x00\x05\x60\x02\xe8\x03\x07\x00\x00\x06\x5f\x02\x20\x4e\x01");
fread($lgsl_fp, 4096);

fwrite($lgsl_fp, "\x01\x00\x00\x02\x00\x05\x60\x02\xe8\x03");
$buffer = fread($lgsl_fp, 4096);
if (strlen($buffer) < 12) {
fwrite($lgsl_fp, "\x00\x06\x61\x02\x20\x4e\x02");
$buffer = fread($lgsl_fp, 4096);
}
$server['s']['map'] = "Cryofall";
$server['e'] = [];
if (strlen($buffer) < 12) {
$server['s']['name'] = "Cryofall server";
$server['s']['players'] = 0;
$server['s']['playersmax'] = 0;
$server['e']['_error'] = "Server working but not sends data";
} else {
lgsl_cut_byte($buffer, 11);
$server['s']['name'] = lgsl_cut_byte($buffer, lgsl_unpack(lgsl_cut_byte($buffer, 2), "S"));
lgsl_cut_byte($buffer, 2);
$server['e']['version'] = lgsl_cut_byte($buffer, lgsl_unpack(lgsl_cut_byte($buffer, 2), "S"));
$server['s']['players'] = lgsl_unpack(lgsl_cut_byte($buffer, 2), "S");
$server['s']['playersmax'] = lgsl_unpack(lgsl_cut_byte($buffer, 2), "S"); lgsl_cut_byte($buffer, 3);
$server['e']['description'] = lgsl_parse_color(lgsl_cut_byte($buffer, lgsl_unpack(lgsl_cut_byte($buffer, 2), "S")), 'factorio');
lgsl_cut_byte($buffer, lgsl_unpack(lgsl_cut_byte($buffer, 2), "S") - 8);
$server['e']['GUID'] = '';
for ($i = 0; $i < 16; $i++) {
$server['e']['GUID'] = bin2hex(lgsl_cut_byte($buffer, 1)) . $server['e']['GUID'];
}
$server['e']['GUID'] = strtoupper($server['e']['GUID']);
lgsl_cut_byte($buffer, 8);
$mods = ord(lgsl_cut_byte($buffer, 1));
for ($i = 0; $i < $mods; $i++) {
$server['e']["mod{$i}"] = lgsl_cut_byte($buffer, lgsl_unpack(lgsl_cut_byte($buffer, 2), 'S')) ." v" .lgsl_cut_byte($buffer, lgsl_unpack(lgsl_cut_byte($buffer, 2), 'S'))." - ".lgsl_cut_byte($buffer, lgsl_unpack(lgsl_cut_byte($buffer, 2), 'S')); lgsl_cut_byte($buffer, 2);
}
$mods = ord(lgsl_cut_byte($buffer, 1));
for ($i = 0; $i < $mods; $i++) {
$server['e']["option{$i}"] = lgsl_cut_byte($buffer, lgsl_unpack(lgsl_cut_byte($buffer, 2), "S"));
}
$server['e']["community_server"] = ord(lgsl_cut_byte($buffer, 1));
$server['e']["no_client_mods"] = ord(lgsl_cut_byte($buffer, 1));
}
return TRUE;
}

function lgsl_query_45(&$server, &$lgsl_need, &$lgsl_fp) { // GTA / Mafia Connected
fwrite($lgsl_fp, "\xFF\xFFUGP\x00\x01\x00");
$buffer = fread($lgsl_fp, 4096);
if (!$buffer) return false;
fwrite($lgsl_fp, "\xFF\xFFUGP\x00\x01\x01" . chr(0x01 | 0x08) . chr(0x04 | 0x08 | 0x20 | 0x40) . chr(0x01 | 0x02 | 0x04));
$buffer = fread($lgsl_fp, 4096);
lgsl_cut_byte($buffer, 8);
switch (ord(lgsl_cut_byte($buffer, 1))) {
case 1: $server['s']["game"] = 'iii'; break;
case 2: $server['s']["game"] = 'vc'; break;
case 3: $server['s']["game"] = 'sa'; break;
case 5: $server['s']["game"] = 'iv'; break;
case 6: $server['s']["game"] = 'iv_eflc'; break;
case 10: $server['s']["game"] = 'mafia'; break;
}
lgsl_cut_byte($buffer, 2);
$server['s']["name"] = lgsl_cut_byte($buffer, ord(lgsl_cut_byte($buffer, 1)));
$server['s']["mode"] = lgsl_cut_byte($buffer, ord(lgsl_cut_byte($buffer, 1)));
$server['s']["map"] = 'default';
$server['s']['players'] = ord(lgsl_cut_byte($buffer, 1));
$server['s']['playersmax'] = ord(lgsl_cut_byte($buffer, 1));
for ($i = ord(lgsl_cut_byte($buffer, 1)); $i > 0; $i--) {
$server['e'][lgsl_cut_byte($buffer, ord(lgsl_cut_byte($buffer, 1)))] = lgsl_cut_byte($buffer, ord(lgsl_cut_byte($buffer, 1)));
}
return TRUE;
}

function lgsl_query_46(&$server, &$lgsl_need, &$lgsl_fp) { // SRB2
function checksum ($p, $l) {
$n = strlen($p) - $l;
$c = 0x1234567;
for ($i = 0; $i < $n; ++$i)
$c += ord($p[$l + $i]) * ($i + 1);
return $c;
}

$buf = pack('xxCx', 12) . pack('x5');
fwrite($lgsl_fp, pack('V', checksum($buf, 0)) . $buf);
$buffer = fread($lgsl_fp, 4096);
lgsl_cut_byte($buffer, 10);
$server['e']["application"] = lgsl_cut_byte($buffer, 16);
$server['e']["version"] = ord(lgsl_cut_byte($buffer, 1));
$server['e']["subversion"] = ord(lgsl_cut_byte($buffer, 1));
$server['s']['players'] = ord(lgsl_cut_byte($buffer, 1));
$server['s']['playersmax'] = ord(lgsl_cut_byte($buffer, 1));
lgsl_cut_byte($buffer, 1);
$server['e']["mode"] = lgsl_cut_byte($buffer, 24);
$server['e']['modifiedgame'] = ord(lgsl_cut_byte($buffer, 1));
$server['e']['cheatsenabled'] = ord(lgsl_cut_byte($buffer, 1));
$server['e']['dedicated'] = ord(lgsl_cut_byte($buffer, 1));
$server['e']['lotsofaddons'] = $server['e']['dedicated'] & 0x20;
$server['e']['dedicated'] = $server['e']['dedicated'] & 0x40;
$server['e']['fileneedednum'] = ord(lgsl_cut_byte($buffer, 1));
lgsl_cut_byte($buffer, 8);
$server['s']["name"] = lgsl_cut_byte($buffer, 32);
$server['e']["mapname"] = lgsl_cut_byte($buffer, 8);
$server['s']["map"] = lgsl_cut_byte($buffer, 33);
return TRUE;
}

//------------------------------------------------------------------------------------------------------------+
//------------------------------------------------------------------------------------------------------------+
Expand All @@ -4301,7 +4424,7 @@ function lgsl_query_feed(&$server, $request, $lgsl_feed_method, $lgsl_feed_url)

if (empty($host['host']) || empty($host['path'])) { exit("LGSL FEED PROBLEM: INVALID URL"); }

$host_query = "?type={$server['b']['type']}&ip={$server['b']['ip']}&c_port={$server['b']['c_port']}&q_port={$server['b']['q_port']}&s_port={$server['b']['s_port']}&request={$request}&version=6.2.0";
$host_query = "?type={$server['b']['type']}&ip={$server['b']['ip']}&c_port={$server['b']['c_port']}&q_port={$server['b']['q_port']}&s_port={$server['b']['s_port']}&request={$request}&version=6.2.1";

if (function_exists("json_decode")) { $host_query .= function_exists("gzuncompress") ? "&format=4" : "&format=3"; }
else { $host_query .= function_exists("gzuncompress") ? "&format=2" : "&format=1"; }
Expand Down Expand Up @@ -4779,7 +4902,7 @@ function lgsl_gs_crypt($type, &$buffer, $encrypt = FALSE)

function lgsl_version()
{
return "Powered by LGSL</a> | <a href='https://github.com/tltneon/lgsl/releases'>v 6.2.0"; // little dirty trick
return "Powered by LGSL</a> | <a href='https://github.com/tltneon/lgsl/releases'>v 6.2.1"; // little dirty trick
}

//------------------------------------------------------------------------------------------------------------+
Expand Down

0 comments on commit f962ddf

Please sign in to comment.