1. Рады видеть Вас на русскоязычном форуме TeamSpeak!

    У нас Вы можете скачать последнюю версию:

    Перед регистрацией рекомендуем ознакомиться

    с Правилами форума.

    Присоединяйтесь! Учите и обучайтесь!

    Скрыть объявление
  2. Новая группа "Новичок" на нашем форуме!

    Новые пользователи будут попадать в группу "Новичок".

    Это сделано для того чтобы "Новички" ознакомились с форумом, так как в большинстве случаев проблема с которой вы хотите обратиться уже обсуждалась.

    Перейти в тему обсуждения
    Быстрый переход в группу Пользователь
  3. VPS/VDS и дедикейт сервера в аренду с DDoS защитой

    • Низкий пинг
    • Действующий SLA
    • Рублевые цены без привязки к курсу валют

    Бесплатный тестовый период VPS-OpenVZ

    Попробовать

Как создавать и распространять плагины

Инструкция по плагинам и ресурсам TS3

  1. VJean
    Данный гайд является компиляцией разных выдержек из сети и собственных раскопок по созданию плагинов и ресурсов (иконки, звуковые файлы, переводы) с дальнейшим распространением для клиента TS3.
    Внимание, в статье будет много технических выдержек.

    2016-02-23_03-35-16.png

    В Windows инсталятор клиента регистрирует в реестре приложение package_inst.exe с расширениями файлов (в дальнейшем в статье любой из этих файлов буду называть плагином):
    .ts3_addon - компиляция из нескольких ниже приведенных ресурсов, например иконки+стиль
    .ts3_iconpack - иконки
    .ts3_plugin - плагин
    .ts3_soundpack - звуковые файлы
    .ts3_style - стиль
    .ts3_translation - перевод​
    Код:
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\.ts3_addon]
    @="ts3addon"
    [HKEY_CLASSES_ROOT\.ts3_iconpack]
    @="ts3addon"
    [HKEY_CLASSES_ROOT\.ts3_plugin]
    @="ts3addon"
    [HKEY_CLASSES_ROOT\.ts3_soundpack]
    @="ts3addon"
    [HKEY_CLASSES_ROOT\.ts3_style]
    @="ts3addon"
    [HKEY_CLASSES_ROOT\.ts3_translation]
    @="ts3addon"
    
    [HKEY_CLASSES_ROOT\ts3addon]
    @="TeamSpeak Add-On"
    
    [HKEY_CLASSES_ROOT\ts3addon\DefaultIcon]
    @="C:\\Program Files\\TeamSpeak 3 Client\\package_inst.exe,0"
    
    [HKEY_CLASSES_ROOT\ts3addon\shell]
    [HKEY_CLASSES_ROOT\ts3addon\shell\open]
    [HKEY_CLASSES_ROOT\ts3addon\shell\open\command]
    @="\"C:\\Program Files\\TeamSpeak 3 Client\\package_inst.exe\" \"%1\""

    Для запуска встроенного установщика под Linux (возможно и под Mac, не проверял):
    Код:
    cd /каталог_куда_установлен_клиент/
    export LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH"
    ./package_inst /путь_к_файлу/skin.ts3_style
    иначе, без cd (перехода в каталог), получите Segmentation Fault.
    и без export:
    Код:
    ./package_inst: error while loading shared libraries: libc++.so.1: cannot open shared object file: No such file or directory
    Сама возможность установки данные расширения файлов появилась с версии клиента 3.0.0-rc2 (08 Jun 2011).
    Для восстановления регистраций файлов можно запустить createfileassoc.exe из каталога с установленным приложением (%Program Files%\TeamSpeak 3 Client\createfileassoc.exe).

    Расширение файла несет только логическую связь что-есть-что. Например, в стиле (ts3_style) может распространятся перевод (ts3_translation). Ошибки в этом не будет, но лучше так не делать. Что точно там лежит определяется по содержимому файла package.ini.

    Сам плагин представляет из себя ZIP архив с определенной структурой:
    TOTALCMD64_2016-02-23_05-50-14.png
    Код:
    file.ts3_addon
      |-- gfx/
      |-- plugins/
      |-- sound/
      |-- styles/
      |-- translations/
      package.ini
    т.е., структура каталогов как и установленного клиента. В каком каталоге что лежит, думаю понятно из названий. Названия каталогов к корне плагина фильтруются.


    package.ini представляет из себя обычный INI-файл. Кодировка UTF8 без BOM.

    Содержимое файла package.ini на примере из скрина выше:
    Код:
    Name = Русификатор TS3 3.0.13.1
    Type = Перевод
    Author = PaCTa MyTeamSpeak.ru
    Version = 1.0
    Platforms = win32, win64, linux_x86, linux_amd64, mac
    Description = "Русификатор клиентской части для TeamSpeak 3 клиента версии 3.0.13.1 от <a href=http://myteamspeak.ru> Мой TeamSpeak — русскоязычное сообщество TeamSpeak</a>"
    Type: Тип плагина. Должен соответствовать суффиксу расширению файла или указано несколько значений через запятую, например: Iconpack, Style.

    Platforms: Поддерживаемые платформы, допустимые значения, разделенные запятыми: win32, win64, linux_x86, linux_amd64, mac. Установщик проверяет это поле, если платформа не совпадет, то увидите такое сообщение с невозможной дальнейшей установкой:
    2016-02-23_04-42-21.png
    Допускается не перечислять все платформы, оставив поле пустым. В этом случае в поле Платформа будет слово "Все".
    package_inst_2016-02-23_05-48-20.png

    Description: Описание плагина, в двойных кавычках,
    Официальный ответ на найденный баг в коде.
    поддерживаются HTML-тегов с стилями (style="*"). высота поля ≈9 строк. Вложенные кавычки экранировать слешем \" или вместо них использовать одинарные кавычки. Некоторые теги и значения в стиле экранируются или не работают как надо:
    <a> - ссылки. Только подчеркнет.
    <img> - изображения. Покажет свою картинку-заглушку. Можно вставлять картинки в base64.
    Код:
    Description = "<img src=\"data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7 \"></img> <br />
    <span style=\"background:url(data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7) top left no-repeat;\"> &nbsp; &nbsp; &nbsp; &nbsp;</span>"
    package_inst_2016-02-24_22-16-10.png
    <iframe> - фрейм.
    <.. style="font-size:*em"> - только для em. px и pt работают.
    JavaScript, включая события: onClick, onLoad и т.д.​

    Остальные значения заполняются plain-текстом. HTML не работает.

    Если в плагине распространяются одноименный(ые) файл(ы) под разные платформы, то можно переименовать его с указанием платформы (win32, win64, ...) через нижнее подчеркивание. например:
    plugin.dll переименовать в plugin_win32.dll​
    Для запуска установщика в скрытом режиме без запросов надо запустить с параметром -silent.
    "%Program Files%\TeamSpeak 3 Client\package_inst.exe" -silent "путь_к_файлу\file.ts3_addon"​


    ссылки: TeamSpeak 3 Package Installer, Feedback about the "TeamSpeak 3 Package Installer"


    PS. Чтобы не полетели помидоры в РаСТу: в этой статье был показан старый плагин и на то время было трудно собрать нужную инфу, а поддержка как всегда морозится и не отвечает :)​

    Изображения

    1. package_inst_2016-02-23_06-57-02.png
    Socrates, NtUser, PaCTa и ещё 1-му нравится это.