diff --git a/serverinfo.php b/serverinfo.php index 78423ee..907242a 100644 --- a/serverinfo.php +++ b/serverinfo.php @@ -35,19 +35,34 @@ if (user_logged_in() && is_admin($user_data)) { if ($stagesXML !== false) { $stagesData = array(); // Load config ( stages enabled or disabled) - foreach ($stagesXML->config->attributes() as $name => $value) { - $stagesData["$name"] = "$value"; - } + if ($config['TFSVersion'] == 'TFS_10') + foreach ($stagesXML->config->attributes() as $name => $value) + $stagesData["$name"] = "$value"; // Load stage levels // Each stage XML object - foreach ($stagesXML->stage as $stage) { - $rowData = array(); - // Each attribute name and values on current stage object - foreach ($stage->attributes() as $name => $value) { - $rowData["$name"] = "$value"; + if ($config['TFSVersion'] == 'TFS_10') { + foreach ($stagesXML->stage as $stage) { + $rowData = array(); + // Each attribute name and values on current stage object + foreach ($stage->attributes() as $name => $value) { + $rowData["$name"] = "$value"; + } + // Populate XML assoc array + $stagesData['stages'][] = $rowData; + } + } else { + // TFS 0.3/4 + foreach ($stagesXML->world as $world) { + foreach ($world->stage as $stage) { + $rowData = array(); + // Each attribute name and values on current stage object + foreach ($stage->attributes() as $name => $value) { + $rowData["$name"] = "$value"; + } + // Populate XML assoc array + $stagesData['stages'][] = $rowData; + } } - // Populate XML assoc array - $stagesData['stages'][] = $rowData; } $cache->setContent($stagesData); $cache->save(); @@ -70,6 +85,54 @@ if (user_logged_in() && is_admin($user_data)) { $cache = new Cache('engine/cache/luaconfig'); if (user_logged_in() && is_admin($user_data)) { if (isset($_POST['loadConfig']) && isset($_POST['configData'])) { + // Whitelist for values we are interested in + $whitelist = array( // Etc 'maxPlayers' + 'worldType', + 'hotkeyAimbotEnabled', + 'protectionLevel', + 'killsToRedSkull', + 'killsToBlackSkull', + 'pzLocked', + 'removeChargesFromRunes', + 'timeToDecreaseFrags', + 'whiteSkullTime', + 'stairJumpExhaustion', + 'experienceByKillingPlayers', + 'expFromPlayersLevelRange', + 'loginProtocolPort', + 'maxPlayers', + 'motd', + 'onePlayerOnlinePerAccount', + 'deathLosePercent', + 'housePriceEachSQM', + 'houseRentPeriod', + 'marketOfferDuration', + 'premiumToCreateMarketOffer', + 'maxMarketOffersAtATimePerPlayer', + 'allowChangeOutfit', + 'freePremium', + 'kickIdlePlayerAfterMinutes', + 'rateExp', + 'rateSkill', + 'rateLoot', + 'rateMagic', + 'rateSpawn', + 'staminaSystem', + 'experienceStages' + ); + // TFS 0.3/4 compatibility, convert config value names to TFS 1.0 values + $tfs03to10 = array( + // TFS 0.3/4 TFS 1.0 + 'rateExperience' => 'rateExp', + 'loginPort' => 'loginProtocolPort', + 'rateExperienceFromPlayers' => 'experienceByKillingPlayers', + 'dailyFragsToRedSkull' => 'killsToRedSkull', + 'dailyFragsToBlackSkull' => 'killsToBlackSkull', + 'removeRuneCharges' => 'removeChargesFromRunes', + 'stairhopDelay' => 'stairJumpExhaustion', + 'housePriceEachSquare' => 'housePriceEachSQM', + 'idleKickTime' => 'kickIdlePlayerAfterMinutes', + ); // This will be the populated array with filtered relevant data $luaConfig = array(); // Explode the string into string array by newline @@ -91,48 +154,26 @@ if (user_logged_in() && is_admin($user_data)) { // Remove uneccesary whitespace $data[0] = trim($data[0]); $data[1] = trim($data[1]); - // Whitelist for values we are interested in - $whitelist = array( // Etc 'maxPlayers' - 'worldType', - 'hotkeyAimbotEnabled', - 'protectionLevel', - 'killsToRedSkull', - 'killsToBlackSkull', - 'pzLocked', - 'removeChargesFromRunes', - 'timeToDecreaseFrags', - 'whiteSkullTime', - 'stairJumpExhaustion', - 'experienceByKillingPlayers', - 'expFromPlayersLevelRange', - 'loginProtocolPort', - 'maxPlayers', - 'motd', - 'onePlayerOnlinePerAccount', - 'deathLosePercent', - 'housePriceEachSQM', - 'houseRentPeriod', - 'marketOfferDuration', - 'premiumToCreateMarketOffer', - 'maxMarketOffersAtATimePerPlayer', - 'allowChangeOutfit', - 'freePremium', - 'kickIdlePlayerAfterMinutes', - 'rateExp', - 'rateSkill', - 'rateLoot', - 'rateMagic', - 'rateSpawn', - 'staminaSystem' - ); + // TFS 0.3/4 compatibility + if (isset($tfs03to10[$data[0]])) { + $data[0] = $tfs03to10[$data[0]]; + if (isset($tfs03to10[$data[1]])) { + $data[1] = $tfs03to10[$data[1]]; + } + } if (in_array($data[0], $whitelist)) { // Type cast: boolean if (in_array(strtolower($data[1]), array('true', 'false'))) { $data[1] = (strtolower($data[1]) === 'true') ? true : false; } else { - // Type cast: integer if (strpos($data[1], '"') === false) { - $data[1] = eval('return (' . $data[1] . ');'); + if (!in_array($data[1], array_keys($luaConfig))) { + // Type cast: integer + $data[1] = eval('return (' . $data[1] . ');'); + } else { + // Type cast: Load value from another key + $data[1] = (isset($luaConfig[$data[1]])) ? $luaConfig[$data[1]] : null; + } } else { // Type cast: string, just remove the quote we earlier used to determine if it was a string. $data[1] = str_replace('"', '', $data[1]); @@ -170,7 +211,7 @@ $stages = false;
Here you will find all basic information about
- +Remove rune charges | - | ||
Time to decrease frags | -- | ||
Time to decrease frags | ++ | ||
Experience by killing players | @@ -326,18 +369,24 @@ $stages = false; | Allow outfit change | |
Stamina system | -- | ||
Premium to add items to market | -- | ||
Market offer duration | -- | ||
Stamina system | ++ | ||
Premium to add items to market | ++ | ||
Market offer duration | ++ |