Guest User

Untitled

a guest
Feb 17th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. Class Servers {
  2. public static function getServersInfo() {
  3. // Соединение с БД
  4. $db = Db::getConnection();
  5.  
  6. // Запрос к БД
  7. $result = $db->query('SELECT * FROM `servers` ORDER BY `id` ASC');
  8.  
  9. // Получение и возврат результатов
  10. $serverInfo = array();
  11. $i = 0;
  12. while ($row = $result->fetch()) {
  13. $serverInfo[$i]['id'] = $row['id'];
  14. $serverInfo[$i]['name'] = $row['name'];
  15. $serverInfo[$i]['ip'] = $row['ip'];
  16. $serverInfo[$i]['port'] = $row['port'];
  17. $serverInfo[$i]['Map'] = $row['Map'];
  18. $serverInfo[$i]['Players'] = $row['Players'];
  19. $serverInfo[$i]['MaxPlayers'] = $row['MaxPlayers'];
  20. $serverInfo[$i]['Secure'] = $row['Secure'];
  21. $serverInfo[$i]['game_id'] = $row['game_id'];
  22. $serverInfo[$i]['status'] = $row['status'];
  23. $i++;
  24. }
  25. return $serverInfo;
  26. }
  27. }
  28.  
  29. foreach (getServerInfo($db) as $a) {
  30. $server_id = $a['id'];
  31. $ip = $a['ip'];
  32. $port = $a['port'];
  33.  
  34. try {
  35. $q->connect($ip, $port, 1, SourceQuery::SOURCE);
  36.  
  37. $arr = $q->getInfo();
  38. extract($arr);
  39.  
  40. //Для игроков
  41. $gameuser = $q->getPlayers();
  42. //$gameuser = $gameuser['0'];
  43.  
  44.  
  45. //Дропаем таблицу players для обновления онлайна
  46. DropPlayers($db, $server_id);
  47.  
  48. $NumberTab = 1;
  49.  
  50. //Добавляем игроков по каждому серверу
  51. foreach ($gameuser as $b) {
  52. $Id = $NumberTab++;
  53. $Name = $b['Name'];
  54. if (empty($Name) || $Name == '') $Name = 'Игрок подключается...';
  55. $Frags = $b['Frags'];
  56. $TimeF = $b['TimeF'];
  57. AddPlayers($db, $Id, $Name, $Frags, $TimeF, $server_id);
  58. }
  59.  
  60.  
  61. LogCron($server_id);// Запустим запись логов в файл
  62.  
  63. ServerOFF($db, $server_id, 1);// Поставим статус 1 , что сервер онлайн и ответил на запросы
  64.  
  65. //Если успешно обновилась инфа о сервере
  66. if ( UpdateServerInfo($db, $HostName, $Map, $ModDesc, $Players, $MaxPlayers, $server_id) ) {
  67. echo "Yes update server id: $server_id <br />";
  68. }else{
  69. echo "Error update server id: $server_id";
  70. }
  71.  
  72. } catch (Exception $e) {
  73. $error = "Error: " . $e->getMessage();
  74. ErrorLogCron($server_id, $error);
  75. ServerOFF($db, $server_id, 0);
  76. echo "Error update server id: $server_id -> See cron error log! <br />";
  77. } finally {
  78. $q->disconnect();
  79. }
  80. }
Add Comment
Please, Sign In to add comment