[CS:GO] Автозагрузка демок на сайт

Тема в разделе "Статьи и мануалы", создана пользователем ThreshHNS, 15 янв 2016.

  1. ThreshHNS

    ThreshHNS

    Сообщения:
    228
    Симпатии:
    25
    Описание:

    Полностью готовая система выкладывание демок с Ваших серверов на сайт.
    Система включает в себя красивый дизайн, удобный поиск, поиск демок с участием только Вас (Steam API), подробную статистику и лог чата каждой демки.
    Система работает только для CS:GO
    Демо (ENG)
    Демо (RUS)

    Скриншоты:
    [​IMG]
    [​IMG]

    Требуется:

    • Установленный - Sourcemod/Metamod
    • Сайт с поддержкой - PHP/MySQL
    • Расширение - cURL & Hash

    Установка:

    Шаг 1: Распределяем файлы по папкам
    Код:
    1. Положить [B]autodemo.smx[/B] в addons\sourcemod\plugins
    2. Расширения [B]curl[/B] в addons\sourcemod\extensiosn
    3. Конфиг [B]autodemo.txt[/B] в addons\sourcemod\configs
    Шаг 2: Настройка autodemo.txt
    PHP:
    "AutoDemo"
    {
    // ftp путь до папки со stage
    "ftp"  "ftp://thresh.hlmod.ru/stage"

    // данные от ftp
    "username" ""   
    "password" ""

    // ссылка сайта с демками
    "site" "http://demos.powerhns.ru"
    // ключ от api сайта (запоминаем)
    "key" "demos"     

    // название сервера (без пробелов)
    "server" "Classic"
    }

    Шаг 3: Установка веб-части
    Код:
    1. Файлы из папки [B]demos[/B] заливаем на сайт
    2. Настраиваем и переименовываем [B]config.example.php[/B] в config.php
    3. Делаем SQL запрос для создания базы на сайте через PhpMyAdmin
    4. Настраиваем и переименовываем [B]sql_login.example.php[/B] в sql_login.php
    ᅠᅠᅠᅠНастройка config.php
    PHP:
    <?php

    $apikey 
    ""// ключ от api сайта (копируем,то что вставляли в autodemo.cfg
    $steamapikey ""// http://steamcommunity.com/dev/apikey

    date_default_timezone_set"Russia/Moscow" ); // время по МСК

    $admins = array(
        array (
            
    "name" => "pray and spray"// ник администратора
            
    "id" => "76561198069264171" // id профиля
        
    )
    );

    ?>
    ᅠᅠᅠᅠSQL запрос для создания базы (или уже готовый дамп в архиве)
    PHP:
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    SET time_zone "+00:00";


    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;

    --
    -- 
    Database: `demos`
    --

    -- --------------------------------------------------------

    --
    -- 
    Table structure for table `INFO`
    --

    CREATE TABLE IF NOT EXISTS `INFO` (
      `
    IDint(10unsigned NOT NULL AUTO_INCREMENT,
      `
    SERVERint(11NOT NULL,
      `
    GAMEvarchar(16NOT NULL,
      `
    FILEvarchar(128NOT NULL,
      `
    MAPvarchar(64NOT NULL,
      `
    TIMEint(10unsigned NOT NULL,
      `
    DURATIONfloat unsigned NOT NULL,
      `
    TICKSint(10unsigned NOT NULL,
      `
    SCORE1int(11NOT NULL,
      `
    SCORE2int(11NOT NULL,
      `
    NAMEStext NOT NULL,
      `
    CHATtext NOT NULL,
      `
    NOTEStext,
      
    PRIMARY KEY (`ID`),
      
    KEY `TIME` (`TIME`),
      
    FULLTEXT KEY `PLAYERS` (`NAMES`,`CHAT`)
    ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7516 ;

    -- --------------------------------------------------------

    --
    -- 
    Table structure for table `PLAYERS`
    --

    CREATE TABLE IF NOT EXISTS `PLAYERS` (
      `
    IDint(11NOT NULL AUTO_INCREMENT,
      `
    MATCHIDint(11NOT NULL,
      `
    ACCOUNTint(10unsigned NOT NULL,
      `
    BIGSTREAKint(11NOT NULL,
      
    PRIMARY KEY (`ID`),
      
    KEY `MATCH` (`MATCHID`)
    ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=102291 ;

    -- --------------------------------------------------------

    --
    -- 
    Table structure for table `SERVERS`
    --

    CREATE TABLE IF NOT EXISTS `SERVERS` (
      `
    IDint(11NOT NULL AUTO_INCREMENT,
      `
    NAMEvarchar(64NOT NULL,
      `
    GAMEvarchar(16NOT NULL,
      
    PRIMARY KEY (`ID`)
    ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=;

    /*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
    /*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
    /*!40101 SET [email protected]_COLLATION_CONNECTION */;
    ᅠᅠᅠᅠНастройка sql_login.php
    PHP:
    <?php

    $sql_addr 
    ''// адрес SQL сервера
    $sql_user ''// пользователь от SQL базы
    $sql_password ''// пароль от SQL базы
    $sql_database ''// имя SQL базы

    ?>
    Шаг 4: Удаление демок и записей с сайта Оффтоп
    Код:
    1. Настраиваем и заливаем файл [B]demormv.sh[/B] на ваш сайт
    2. Создаем новое задание cron на период - "каждый день"
    ᅠᅠᅠᅠНастройка demormv.sh
    PHP:
    #!/bin/sh
    mysql ----user=пользователь_базы --password=пароль_от_базы --database=имя_базы --execute='DELETE FROM `INFO` WHERE `TIME` < UNIX_TIMESTAMP(NOW() - INTERVAL 4 DAY);'
    find /var/www/user1111/data/www/yoursite.ru/logs -type f -mtime +-delete //Путь до папки logs
    find /var/www/user1111/data/www/yoursite.ru/logs -type d -mtime +-delete //Путь до папки logs
    find /var/www/user1111/data/www/yoursite.ru/demos -type f -mtime +-delete //Путь до папки demos
    find /var/www/user1111/data/www/yoursite.ru/demos -type d -mtime +-delete //Путь до папки demos
    ᅠᅠᅠᅠКоманда cron
    PHP:
    sh /var/www/user3453/data/www/yoursite.ru/demormv.sh >/dev/null 2>&//путь до файла demormv.sh

    Установка завершена!

    Благодарность

    Спасибо автору данной системы - pray'n'spray!
    Отдельная благодарность Tallanvor и Hejter!
    Перевел WEB и выложил тему ThreshHNS
     

    Вложения:

    • demos.rar
      Размер файла:
      2,3 МБ
      Просмотров:
      83
    Последнее редактирование модератором: 10 окт 2016
    Drumanid, san911, ĦĄŇĢǾVξŘ и 7 другим нравится это.
  2. warlock

    warlock

    Сообщения:
    216
    Симпатии:
    1
    Re: Автозагрузка демок на сайт

    Хм. Звучит красиво.
    Но немного не понял данную фразу из описания: просмотр демок с участием только Вас.
    Как это понимать? Сервер пишет демку не от лица всех игроков? Имеется ли возможность посмотреть за игрой каждого игрока на сервере?
    upd посмотрел ваш сайт, увидел ответ на свой вопрос (возможность просмотреть демку от своего лица, когда залогинишься на сайте через стим)
    Другой вопрос. Вижу файлы с расширением .sh, на виндовом сервере так же работает это все?
     
  3. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.073
    Симпатии:
    301
    Re: Автозагрузка демок на сайт

    warlock, нет :)
    Сами демки пишутся, как положено.

    Фраза означает, что можно залогиниться на страницу с демками через SteamAPI и найти из всего списка именно те демки, где ты играл
    Другими словами, поиск по стимайди в демках :)

    Добавлено через 2 минуты
    Нет, там sh использовать не получится.

    Но можно выкрутиться средствами винды или сторонним софтом.
    Суть содержимого файла - очищать по расписанию устаревшие файлы и папки, так как в этом плане автор подкачал(
     
    Последнее редактирование: 15 янв 2016
  4. B1g

    B1g

    Сообщения:
    700
    Симпатии:
    24
    Re: Автозагрузка демок на сайт

    В кс го нужно готв включать?
     
  5. master117

    master117

    Сообщения:
    255
    Симпатии:
    7
    Re: Автозагрузка демок на сайт

    несколько серверов поддерживает ведь?
     
  6. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.073
    Симпатии:
    301
    Re: Автозагрузка демок на сайт

    B1g, tv_enable 1 - это да.
    А вот tv_autorecord нужно выставлять в 0 - или вообще не прописывать (0 - настройка по-умолчанию)

    Добавлено через 46 секунд
    Да сколько угодно)
     
    Последнее редактирование: 15 янв 2016
  7. ThreshHNS

    ThreshHNS

    Сообщения:
    228
    Симпатии:
    25
    Re: Автозагрузка демок на сайт

    master117, только для каждого сервера указывайте свой универсальный ключ (в файлах autodemo.cfg и config.php)
     
  8. KapaT

    KapaT Эгоист

    Сообщения:
    1.982
    Симпатии:
    408
    Re: Автозагрузка демок на сайт

    ThreshHNS, можно сылку на оригинал статьи?
    Почему не указано что нужно включать
    может еще что то упустил? Патом вопросы почему не работает и т.д. Разжовуй как можно мельче.
    Да и это только для КСГО? Патому что на КСС ошибка
    PHP:
    L 01/16/2016 10:57:32: [SMNative "HookEvent" reportedGame event "cs_match_end_restart" does not exist
    L 01
    /16/2016 10:57:32: [SMDisplaying call stack trace for plugin "autodemo.smx":
    L 01/16/2016 10:57:32: [SM]   [0]  Line 209E:\Steamcmd\power\csgo\addons\sourcemod\scripting\autodemo.sp::OnPluginStart()
     
  9. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.073
    Симпатии:
    301
    Re: Автозагрузка демок на сайт

    KapaT, весь фокус в том, что это и есть оригинал.
    Собиралось всё и настраивалось методом научного тыка.

    Был только исходник плагина - и всё.

    Ещё потом выцепили структуру базы.

    Дальше - наощупь.
    Поэтому таких недочетов ещё много....
     
  10. KapaT

    KapaT Эгоист

    Сообщения:
    1.982
    Симпатии:
    408
    Re: Автозагрузка демок на сайт

    Правильно понял что, это только начало и еще много сырого? Тогда просто пожелания по мере дополнения/усовершенствования обновлять первый пост, что б патом когда тема наберет 10+ страниц не искать инфу по всем страницам. Насчет КСС что?
     
  11. vaxa

    vaxa Rock Rulet!

    Сообщения:
    859
    Симпатии:
    102
    Re: Автозагрузка демок на сайт

    KapaT, еванта нету такого в css
    Game event "cs_match_end_restart" does not exist
     
  12. KapaT

    KapaT Эгоист

    Сообщения:
    1.982
    Симпатии:
    408
    Re: Автозагрузка демок на сайт

    vaxa,я в курсе, просто не написано не где что статья только для ксго.
     
  13. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    124
    Такой вопрос:
    У меня демки пишет сторонний плагин, и мне не нужно записывать их еще раз плагином autodemo.smx.
    Будут ли перенесены демки, записанные сторонним плагином?
    UPD:
    Так под ксс не работает?
    И как работает поиск игрока при авторизации: в демке или по логам?
     
    Последнее редактирование: 24 янв 2016
  14. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.073
    Симпатии:
    301
    HooLIGUN, ответ "нет" на первые два вопроса.
    Насчёт поиска игрока:
    плагин парсит лог, а потом прописывает инфу в БД.
     
  15. ThreshHNS

    ThreshHNS

    Сообщения:
    228
    Симпатии:
    25
    HooLIGUN, в название темы написано [CS:GO] и в описании так же.
     
  16. ICE

    ICE

    Сообщения:
    118
    Симпатии:
    13
    Если у меня сайт на одной VDS а сервера на другой эта конструкция будет работать?
     
  17. KapaT

    KapaT Эгоист

    Сообщения:
    1.982
    Симпатии:
    408
    будет
     
  18. ICE

    ICE

    Сообщения:
    118
    Симпатии:
    13
    А на той вдс где сервера будут плодится демки(в папке с сервером)? Или после отгрузки на сайт демка удаляется с сервера?
    --- Добавлено позже ---
    А вот этого не понял. Вернее понял что в autodemo.txt можно для каждого сервера выставить свое значение, а в config.php как? Там же одна переменная $apikey....
    Или можно так:
    $apikey = "demo1";
    $apikey = "demo2";
    $apikey = "demo3";
    Или я что-то не так понял?

    И еще в логе вот что:
    L 02/04/2016 - 18:41:58: [autodemo.smx] Started recording "auto-AWP#1-020416-184158-awp_arena.dem".
    L 02/04/2016 - 19:20:03: [autodemo.smx] Stopped recording "auto-AWP#1-020416-184158-awp_arena.dem".
    L 02/04/2016 - 19:20:05: [autodemo.smx] Couldn't open "addons/sourcemod/data/demos/auto-AWP#1-020416-184158-awp_arena.dem" for upload!
    --- Добавлено позже ---
    Демки в папке demos нет почему-то
     
    Последнее редактирование: 4 фев 2016
  19. ThreshHNS

    ThreshHNS

    Сообщения:
    228
    Симпатии:
    25
    Значение каждого сервера ты вставляешь в название сервера (autodemo txt), а это ключ для соединения сервера и веб.
     
  20. ICE

    ICE

    Сообщения:
    118
    Симпатии:
    13
    спасибо, а почему может не писатся демка? Готв включен