Рейтинг
+2.26
голосов:
2
avatar

База знаний  

Мониторинг серверов Teeworlds на PHP

Функция для работы с сервером Teeworlds

Что она делает: обращается к серверу с указанным айпи адресом и портом и получает все необходимые данные о нем, такие как — кол-во игроков (разрешено, в спеках, в игре и проч), счет, информация о каждом игроке, карта, мод и прочие.

<?php
function get_tw_server_0_6($server) {
 
  $socket = stream_socket_client('udp://'.$server , $errno, $errstr, 1);
  fwrite($socket, "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\x69\x65\x33\x05");
  $response = fread($socket, 2048);
 
  //  echo str_replace("\x00"," 
 ",$response);
 
  if ($response){
    $info = explode("\x00",$response);
 
    $players = array();
    for ($i = 0; $i <= $info[8]*5-5 ; $i += 5) {
   
      $teams = Array("Наблюдает","В игре");
      $team = $teams[$info[$i+14]];
   
      $flags = Array();
   
      $flags[] = Array("default", "-1");
      $flags[] = Array("XEN", "901");
      $flags[] = Array("XNI", "902");
      $flags[] = Array("XSC", "903");
      $flags[] = Array("XWA", "904");
      $flags[] = Array("AR", "32");
      $flags[] = Array("AU", "36");
      $flags[] = Array("AT", "40");
      $flags[] = Array("BY", "112");
      $flags[] = Array("BE", "56");
      $flags[] = Array("BR", "76");
      $flags[] = Array("BG", "100");
      $flags[] = Array("CA", "124");
      $flags[] = Array("CL", "152");
      $flags[] = Array("CN", "156");
      $flags[] = Array("CO", "170");
      $flags[] = Array("HR", "191");
      $flags[] = Array("CZ", "203");
      $flags[] = Array("DK", "208");
      $flags[] = Array("EG", "818");
      $flags[] = Array("SV", "222");
      $flags[] = Array("EE", "233");
      $flags[] = Array("FI", "246");
      $flags[] = Array("FR", "250");
      $flags[] = Array("DE", "276");
      $flags[] = Array("GR", "300");
      $flags[] = Array("HU", "348");
      $flags[] = Array("IN", "356");
      $flags[] = Array("ID", "360");
      $flags[] = Array("IR", "364");
      $flags[] = Array("IL", "376");
      $flags[] = Array("IT", "380");
      $flags[] = Array("KZ", "398");
      $flags[] = Array("LV", "428");
      $flags[] = Array("LT", "440");
      $flags[] = Array("LU", "442");
      $flags[] = Array("MX", "484");
      $flags[] = Array("NL", "528");
      $flags[] = Array("NO", "578");
      $flags[] = Array("PK", "586");
      $flags[] = Array("PH", "608");
      $flags[] = Array("PL", "616");
      $flags[] = Array("PT", "620");
      $flags[] = Array("RO", "642");
      $flags[] = Array("RU", "643");
      $flags[] = Array("SA", "682");
      $flags[] = Array("RS", "688");
      $flags[] = Array("SK", "703");
      $flags[] = Array("ZA", "710");
      $flags[] = Array("ES", "724");
      $flags[] = Array("SE", "752");
      $flags[] = Array("CH", "756");
      $flags[] = Array("TR", "792");
      $flags[] = Array("UA", "804");
      $flags[] = Array("GB", "826");
      $flags[] = Array("US", "840");
 
      $flag = "";
   
      foreach ($flags as $flag_tmp)
      {
        if($flag_tmp[1] == $info[$i+12])
        {
          $flag = $flag_tmp[0];
        }
      }
   
 
      $players[] = array(
            "name" => htmlentities($info[$i+10], ENT_QUOTES, "UTF-8"),
            "clan" => htmlentities($info[$i+11], ENT_QUOTES, "UTF-8"),
            "flag" => $flag,
            "score" => $info[$i+13],
            "team" => $team);
    }
 
    if($info[9] == $info[7])
    {
      $specslots = $info[9];
    }else{
      $specslots = $info[9] - $info[7];
    }
    $tmp = array(
    "name" => $info[2],
    "map" => $info[3],
    "type" => $info[4],
    "flags" => $info[5],
    "player_count_ingame" => $info[6],
    "max_players_ingame" => $info[7],
    "player_count_spectator" => $info[8] - $info[6],
    "max_players_spectator" => $specslots,
    "player_count_all" => $info[8],
    "max_players_all" => $info[9],
    "players" => $players);
 
    return $tmp;
 
  } else {
    return FALSE;
  }
}
?>


( Читать дальше )

Удаленное администрирование сервера Teeworlds через telnet (econ)

Нередко случаются ситуации, когда нужно зайти и порулить на свой сервер, но нет возможности зайти на него напрямую, из клиента (например по причине бана..).

Тут нам на помощь приходит замечательная фича, которую разработчики Teeworlds заботливо для нас впилили в версии 0.6.x.


( Читать дальше )
  • +1
  • 07 октября 2012, 14:16
  • suharr
  • 8

Русский язык для версии 0.6

под катом длиннющая портянка файла русификации тв)

( Читать дальше )
  • 0
  • 07 июня 2011, 11:01
  • isour
  • 5

Настройки и запуск DDRace сервера на Windows

В связи с частыми вопросами в нашей конференции по поводу настройки DDRace сервера, я решился написать данный пост. В нём я постараюсь изложить простыми словами мануал по настройке и запуску DDRace сервера на OS Windows. Итак, поехали! =)

( Читать дальше )
  • +3
  • 15 декабря 2010, 00:12
  • ShiFt
  • 25

Проблема с одновременным нажатием двух кнопок мыши в ubuntu 10.04+

По умолчанию в некоторых linux системах, одновременное нажатие левой и правой кнопок мыши равно нажатию средней кнопки. Для исправления этого в терминале, создаём файл:
sudo nano /etc/udev/rules.d/mouse-gaming.rules

Вводим пароль root'a, далее вставляем в файл это:
ENV{x11_options.Emulate3Buttons}="False"

Вытаскиваем провод мыши из системника и заново вставляем, или запускаем данную команду в терминале:
sudo service udev restart

Всё работает.
  • +1
  • 19 ноября 2010, 15:03
  • isour
  • 11

Компиляция Teeworlds под Linux

Описание процесса компиляции Teeworlds для операционной системы Linux.

( Читать дальше )
  • +1
  • 29 мая 2010, 17:47
  • suharr
  • 3

Настройки для тюнинга сервера Teeworlds

Тюнинг – это способ изменить физику и настройки оружия и сделать сервер более настраиваемым. Для изменения настроек просто выполните в админской консоле или напишите в конфиг файле, например:
tune gravity 1.0
Где вы можете заменить  «gravity 1.0″ тем параметром который вам нужен.

( Читать дальше )

Параметры настройки сервера Teeworlds

Есть множество настроек чтобы сконфигурировать сервер, от изменения ограничения счета до скорости полета пули. Эта статья расскажет вам как настраивать сервер. Как запускать сервер можно почитать здесь. Серверные команды описаны здесь.

Синтаксис: параметр значение

( Читать дальше )

Команды сервера Teeworlds

Если вы хотите кикать неугодных игроков с сервера, настривать его во время игры или делать подобные вещи, то вам необходимо использовать консольные команды сервера. Этот пост посвящен всем доступным командам, которые есть в Teeworlds.

Команды

* means introduced with 0.5.0

( Читать дальше )

Установки сервера Teeworlds

Здесь описаны основные установки для запуска сервера Teeworlds под Linux и Windows.
Перенаправление портов (Port forwarding)
Если вы хотите чтобы другие игроки могли играть на вашем сервере через интернет, Ван нужно перенаправить порт на сервер. подробности смотрим здесь.

Конфигурирование сервера
Чтобы настроить сервер, необходимо создать .cfg файл. Пользуясь любым текстовым редактором, создайте этот файл конфигурации (конфиг), используя следующий синтаксис:

переменная значение
переменная_2 значение_2

Список возможных настроек можно найти здесь.

Запуск сервера
Чтобы запустить сервер с вашим конфигом, нужно добавить флаг «-f» в командной строке для запуска. Например:
teeworlds_srv –f serverconfig.cfg


Windows
Запустите командную строку (пуск->все программы->стандартные->командная строка).
Командой «cd» перейдите в каталог c teeworlds и вводите команду для запуска. Пример:
cd D:\games\teeworlds\
teeworlds_srv.exe –f serverconfig.cfg

Заменить «serverconfig.cfg» на название вашего конфига.

Linux
Откройте терминал, перейдите в директорию с игрой командой «cd». Чтобы запустить сервер введите:
teeworlds_srv -f serverconfig.cfg

Заменить «serverconfig.cfg» на название вашего конфига.

Админская консоль
Для того чтобы исполнять команды сервера во время игры используется админская консоль. Вызывается клавишей F2 (или какую вы там назначили). Когда вы её откроете нужно будет ввести пароль который устанавливается в конфиге переменной sv_rcon_password.

UPDATE 24.08.2011. Перевёл Spring