How to Wiki Database (change log)
http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
407 lines
24 KiB
407 lines
24 KiB
10 months ago
|
====== Half-Life на базе Xash3D ======
|
||
|
|
||
|
Недавно появился [[yggdrasil:sites_and_services:other_network_services#half-life|внутрисетевой сервер Half-Life]] на базе движка Xash3D FWGS.
|
||
|
|
||
|
Стало интересно разобраться в особенностях IPv6 / Yggdrasil и создать этот материал для тех, кто захочет поднять внутрисетевой сервер с нуля и кастомизировать его в дальнейшем.
|
||
|
|
||
|
===== Half-Life =====
|
||
|
|
||
|
Half-Life - всем известный шутер от первого лица, за 20 лет не утративший свою популярность.
|
||
|
|
||
|
Технические требования минимальны, игра работает даже на компьютерах без предустановленных видео-драйверов.
|
||
|
|
||
|
===== Xash3D FWGS =====
|
||
|
|
||
|
[[https://github.com/FWGS/xash3d-fwgs|Xash3D FWGS]] - это мульти-платформенный движок с открытым кодом для запуска файлов игры Half-Life 1, с некоторыми доработками оригинального [[https://www.moddb.com/engines/xash3d-engine|Xash3D]].
|
||
|
|
||
|
Файлы самой игры Half-Life нужно приобрести отдельно, затем скопировать в директорию valve с установленным Xash3D FWGS.
|
||
|
|
||
|
Для сборки и запуска необходимо добавить поддержку библиотек архитектуры ''i386'':
|
||
|
|
||
|
<code>
|
||
|
dpkg --add-architecture i386
|
||
|
apt update
|
||
|
apt install build-essential gcc-multilib g++-multilib python3 libsdl2-dev:i386 libfontconfig-dev:i386 libfreetype6-dev:i386
|
||
|
</code>
|
||
|
|
||
|
При возникновении ошибки запуска в последних версиях
|
||
|
<code>
|
||
|
Host_InitError: Can't initialize cl_dlls/client.so: vgui.so: cannot open shared object file: No such file or directory
|
||
|
</code>
|
||
|
|
||
|
нужно скопировать файл ''vgui.so'' уровнем выше директории valve
|
||
|
<code>
|
||
|
~/.steam/steam/steamapps/common/Half-Life/
|
||
|
</code>
|
||
|
|
||
|
===== Xash3D FWGS / YGGverse Edition =====
|
||
|
|
||
|
[[https://github.com/YGGverse/xash3d-fwgs/branches|Xash3D FWGS YGGverse Edition]] основан на ветке master от Xash3D FWGS, целью проекта является создание сборки, ориентированной на сеть Yggdrasil.
|
||
|
|
||
|
В рамках разработки осуществляются обратно-совместимые контрибуции.
|
||
|
|
||
|
|
||
|
|
||
|
==== Ветки ====
|
||
|
|
||
|
* [[https://github.com/YGGverse/xash3d-fwgs/tree/master|master]] - зеркало официальной master от Xash3D FWGS для обновлений
|
||
|
* [[https://github.com/YGGverse/xash3d-fwgs/tree/sv-downloadurl-ipv6|sv-downloadurl-ipv6]] - поддержка параметра sv_downloadurl_ipv6 в server.cfg, поскольку sv_downloadurl работает только с IPv4 (PR #1577)
|
||
|
* [[https://github.com/YGGverse/xash3d-fwgs/tree/master-hl-ygg|master-hl-ygg]] - замена mentality.rip на внутрисетевой master.hl.ygg (в паре с yggdrasil-masters удобен на случай обновления IP без повторной сборки клиентов)
|
||
|
* [[https://github.com/YGGverse/xash3d-fwgs/tree/yggdrasil-masters|yggdrasil-masters]] - дополнительные мастер-сервера в формате 0200::/7 (на случай отсутствия [[yggdrasil:dns:alfis|Alfis DNS]])
|
||
|
* [[https://github.com/YGGverse/xash3d-fwgs/tree/yggdrasil-only|yggdrasil-only]] - ветка предусматривает сборку Xash3D работающей только в рамках сети Yggdrasil, исключая запросы в клирнет (в разработке)
|
||
|
* [[https://github.com/YGGverse/xash3d-fwgs/tree/yggdrasil-inclusive|yggdrasil-inclusive]] - ветка расширяет совместимость master с Yggdrasil, удобна для игрового сервера, работающего в обе сети, включая клирнет
|
||
|
|
||
|
==== Сборка ====
|
||
|
|
||
|
Сборка не отличается от инструкций Xash3D FWGS, достаточно указать адрес репозитория (или использовать нужную ветку для слияния с официальным xash3d-fwgs):
|
||
|
|
||
|
<code>
|
||
|
git clone --recursive https://github.com/YGGverse/xash3d-fwgs.git
|
||
|
cd xash3d-fwgs
|
||
|
git checkout yggdrasil-only
|
||
|
./waf configure -T release
|
||
|
./waf build
|
||
|
./waf install --destdir=/path/to/game
|
||
|
</code>
|
||
|
|
||
|
В рамках [[https://github.com/YGGverse/xash3d-fwgs/releases|релизов]], публикуются бинарные пакеты для Linux что может быть удобным для начинающих пользователей.
|
||
|
|
||
|
===== Клиент =====
|
||
|
|
||
|
При использовании сборок [[https://github.com/YGGverse/xash3d-fwgs/tree/yggdrasil-only|yggdrasil-only]] или [[https://github.com/YGGverse/xash3d-fwgs/tree/yggdrasil-inclusive|yggdrasil-inclusive]] от Xash3D FWGS / YGGverse Edition, в списке "интернет игры" будут доступны все доступные внутрисетевые сервера Yggdrasil.
|
||
|
|
||
|
В остальных случаях, клиент будет работать с IPv6, но по-умолчанию ориентирован на сеть IPv4 и мастер сервер от FWGS - mentality.rip:27010
|
||
|
|
||
|
Можно вручную подключиться к заведомо известному узлу Yggdrasil из консоли с помощью тильды:
|
||
|
|
||
|
<code>
|
||
|
connect [201:5eb5:f061:678e:7565:6338:c02c:5251]:27015
|
||
|
</code>
|
||
|
|
||
|
С недавних пор, удалось портировать [[#pymaster]] для работы с IPv6, также имеется [[https://github.com/YGGverse/xash3d-fwgs/commit/afec7161842e928a5627d724e4fd7445fb7c3ee6|патч для xash3d-fwgs]], позволяющий принимать IPv6 адреса от мастера.
|
||
|
|
||
|
Чтобы удалить IPv4 сервера из списка, открываем консоль и пишем:
|
||
|
|
||
|
<code>
|
||
|
clearmasters
|
||
|
</code>
|
||
|
|
||
|
затем добавляем внутрисетевой мастер сервер или несколько по очереди:
|
||
|
|
||
|
<code>
|
||
|
addmaster [201:5eb5:f061:678e:7565:6338:c02c:5251]:27010
|
||
|
</code>
|
||
|
|
||
|
проверяем
|
||
|
|
||
|
<code>
|
||
|
listmasters
|
||
|
</code>
|
||
|
|
||
|
Данные настройки сохраняются после перезагрузки в файле /valve/xashcomm.lst, также можно добавить сервера вручную, по одному на строку.
|
||
|
|
||
|
//* тильда работает только в режиме игры, вызов консоли также доступен из главного меню при запуске Xash3D с флагом -dev.//
|
||
|
|
||
|
==== Лаунчер ====
|
||
|
|
||
|
Для удобного запуска клиента, можно добавить его в меню приложений:
|
||
|
|
||
|
<file - ~/.local/share/half-life.desktop>
|
||
|
[Desktop Entry]
|
||
|
Encoding=UTF-8
|
||
|
Name=Half-Life
|
||
|
Exec=/path/to/xash3d
|
||
|
Comment=Half-Life on Xash3D
|
||
|
Terminal=false
|
||
|
Icon=/path/to/hl.png
|
||
|
Type=Application
|
||
|
StartupNotify=false
|
||
|
Categories=Games
|
||
|
</file>
|
||
|
|
||
|
Затем активировать:
|
||
|
<code>
|
||
|
xdg-desktop-menu install ~/.local/share/half-life.desktop
|
||
|
</code>
|
||
|
|
||
|
Для разных сборок Xash3D, удобно использовать [[https://github.com/YGGverse/hl-customs|тематические иконки]], например для сборки Yggdrasil:
|
||
|
|
||
|
{{:yggdrasil:half_life_on_xash3d:hl-icon-ipv6.png?128|}}
|
||
|
{{:yggdrasil:half_life_on_xash3d:hl-icon-yggdrasil.png?128|}}
|
||
|
===== Сервер =====
|
||
|
|
||
|
При наличии установленного клиента с файлами игры, запуск сервера в сети Yggdrasil/IPv6 осуществляется командой:
|
||
|
|
||
|
<code>
|
||
|
xash3d -dedicated -port6 27015 -ip6 xxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx -noip +maxplayers 8 +map crossfire
|
||
|
</code>
|
||
|
|
||
|
// * ''-noip'' отключает режим IPv4, если у сервера есть "белый IP" - можно разрешить подключение игроков из Clearnet: ''-ip xx.xx.xx.xx''//\\
|
||
|
// * * не забываем открыть порт 27015 (указать можно любой) //
|
||
|
|
||
|
Дополнительные настройки можно указать в файлах
|
||
|
|
||
|
* /valve/server.cfg - базовые настройки, такие как имя сервера (hostname)
|
||
|
* /valve/skill.cfg - спецификация сервера
|
||
|
* /valve/listip.cfg - настройки ограничения доступа
|
||
|
* /valve/banned.cfg
|
||
|
|
||
|
Чтобы сервер был доступен в списке мастер сервера, важно указать:
|
||
|
|
||
|
<file - server.cfg>
|
||
|
sv_lan 0
|
||
|
public 1
|
||
|
</file>
|
||
|
|
||
|
//* стандартный мастер сервер mentality.rip фильтрует по -game valve//
|
||
|
|
||
|
==== systemd ====
|
||
|
|
||
|
Конфигурация:
|
||
|
|
||
|
<file - /etc/systemd/system/half-life-server.service>
|
||
|
[Unit]
|
||
|
Description=Half-Life Server
|
||
|
After=network.target
|
||
|
|
||
|
[Service]
|
||
|
Type=simple
|
||
|
User=halflife
|
||
|
ExecStart=/home/halflife/xash3d -dedicated -port6 27015 -ip6 xxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx -noip +maxplayers 8 +map crossfire
|
||
|
StandardOutput=file:/home/halflife/server-debug.log
|
||
|
StandardError=file:/home/halflife/server-error.log
|
||
|
Restart=on-failure
|
||
|
|
||
|
[Install]
|
||
|
WantedBy=multi-user.target
|
||
|
</file>
|
||
|
|
||
|
Автозапуск:
|
||
|
|
||
|
<code>
|
||
|
systemctl daemon-reload
|
||
|
systemctl enable half-life-server
|
||
|
systemctl start half-life-server
|
||
|
|
||
|
</code>
|
||
|
|
||
|
==== FastDL ====
|
||
|
|
||
|
FastDL - сокр. "быстрая загрузка", способ передачи дополнительных ресурсов игры клиенту сервером.
|
||
|
|
||
|
Обычно, реестр организуется средствами сервера nginx таким образом, чтобы файловая структура соответствовала структуре в директории ''valve'':
|
||
|
|
||
|
<code>
|
||
|
/maps
|
||
|
/models
|
||
|
/sound
|
||
|
/materials
|
||
|
</code>
|
||
|
|
||
|
В файле ''server.cfg'' указывается URL к данным директориям:
|
||
|
|
||
|
<file - server.cfg>
|
||
|
sv_downloadurl "http://xx.xx.xx.xx/fastdl/half-life/"
|
||
|
sv_allowdownload 1
|
||
|
</file>
|
||
|
|
||
|
где ''/fastdl/half-life/'' - путь к структуре файлов на сервере.
|
||
|
|
||
|
//* на данный момент поддержки IPv6 для ''sv_downloadurl'' [[https://github.com/FWGS/xash3d-fwgs/issues/1559|нет]]//\\
|
||
|
//* в рамках форка [[https://github.com/YGGverse/xash3d-fwgs/tree/sv-downloadurl-ipv6|sv-downloadurl-ipv6]] добавлена поддержка новой опции для server.cfg - sv_downloadurl_ipv6="[IPv6]:port/path" позволяющая секурно загружать модели при подключении Yggdrasil//
|
||
|
|
||
|
==== RESGen ====
|
||
|
|
||
|
Утилита используется для создания файла дополнительных зависимостей в формате ''.res'' для загрузки клиентом из сервера при инициализации карты.
|
||
|
|
||
|
Может быть полезна, если требуется отправить клиенту дополнительные модели игроков, при этом не создавая форки локаций.
|
||
|
|
||
|
Есть [[https://github.com/kriswema/resgen|исходники]] и рабочая [[https://github.com/kriswema/resgen/releases|сборка для Linux]].
|
||
|
|
||
|
**Принцип работы**
|
||
|
|
||
|
Извлекаем зависимости карты:
|
||
|
<code>
|
||
|
Linux.64-bit /valve/maps/crossfire.bsp
|
||
|
</code>
|
||
|
|
||
|
В этой же директории будет создан одноименный файл с расширением ''.res'', который можно открыть текстовым редактором и добавить нужную зависимость:
|
||
|
<file - crossfire.res>
|
||
|
// crossfire.res - created with RESGen v2.0.3.
|
||
|
// RESGen is made by Jeroen "ShadowLord" Bogers,
|
||
|
// with serveral improvements and additions by Zero3Cool.
|
||
|
// For more info go to http://resgen.hltools.com
|
||
|
|
||
|
// .res entries (9):
|
||
|
halflife.wad
|
||
|
sound/ambience/jetflyby1.wav
|
||
|
sound/ambience/siren.wav
|
||
|
sound/debris/beamstart11.wav
|
||
|
sound/weapons/electro5.wav
|
||
|
sound/weapons/mortarhit.wav
|
||
|
sound/weapons/sbarrel1.wav
|
||
|
sprites/muzzleflash1.spr
|
||
|
sprites/steam1.spr
|
||
|
models/player/... // добавляем в конец файла логический путь к новому файлу (на примере модели FastDL)
|
||
|
</file>
|
||
|
|
||
|
Файл ''.res'' должен находится в той же директории что и файл карты - ''/valve/maps''.
|
||
|
|
||
|
Перезагружаем сервер и переподключаем клиент - кастомнный скин должен быть автоматически загружен клиентом и добавлен в директорию ''/valve/downloaded/models/player/...''
|
||
|
===== Мастер =====
|
||
|
|
||
|
Мастер-сервер нужен для удобного поиска игровых серверов через интерфейс игры, иначе нужно каждый раз вводить адрес/порт сервера вручную.
|
||
|
|
||
|
==== pymaster ====
|
||
|
|
||
|
<WRAP round info 60%>
|
||
|
Официальный pymaster считается устаревшим, но силами сообщества в отдельных форках есть активность. Разработчики официальной версии обещают версию на Rust, но дата публикации не известна.
|
||
|
|
||
|
Для работы с Yggdrasil, рекомендуется [[https://github.com/YGGverse/pymaster/tree/v2|версия от YGGverse]], включающая в себя поддержку IPv6 и обновления протокола Xash3D.
|
||
|
</WRAP>
|
||
|
|
||
|
|
||
|
[[https://github.com/FWGS/pymaster|pymaster]] - это Python реализация мастер-сервера [[https://github.com/ezhangle/hlmaster|HLMaster]], в рамках проекта FWGS.
|
||
|
|
||
|
Для запуска необходимо открыть порт 27010 и выполнить команду:
|
||
|
|
||
|
<code>
|
||
|
pymaster.py -i :: -p 27010
|
||
|
</code>
|
||
|
|
||
|
//* в репозитории также есть [[https://github.com/FWGS/pymaster/blob/master/etc/systemd/system/pymaster.service|пример конфигурации systemd]] //
|
||
|
|
||
|
Чтобы pymaster начал отдавать игровые сервера клиентам, обе стороны должны быть скомпилированы или настроены на данный мастер-сервер.
|
||
|
|
||
|
В Xash3D исходники находятся в файле engine/common/netchan.h строки MASTERSERVER_ADR или в файле конфигурации /valve/xashcomm.lst\\
|
||
|
При использовании клиента с графическим интерфейсом, можно динамически указывать мастер сервер в консоли, командами listmasters/clearmasters/addmaster адрес:порт\\
|
||
|
Обновление типичных конфигураций valve - steamcomm.lst и valvecomm.lst игнорируется при запуске в оболочке Xash3D.
|
||
|
|
||
|
==== xash3d-master ====
|
||
|
|
||
|
[[https://git.mentality.rip/numas13/xash3d-master|xash3d-master]] - недавний релиз мастер сервера для Xash3D, написанного на языке Rust.
|
||
|
|
||
|
===== Боты =====
|
||
|
|
||
|
Чтобы оживить сервер и сделать ожидание игроков интереснее, в игру можно добавить ботов с помощью [[https://github.com/FWGS/xash3d-fwgs/issues/1556#issuecomment-1876014868|сторонних плагинов]].
|
||
|
|
||
|
==== Bot Number 10 ====
|
||
|
|
||
|
Самый простой способ - установка последней версии [[http://hpb-bot.bots-united.com/downloads.html|Bot Number 10]].
|
||
|
|
||
|
Загружаем архив для [[http://hpb-bot.bots-united.com/releases/bot10_linux.tgz|Linux]] и распаковываем содержимое в корневую директорию с бинарником xash3d таким образом, чтобы директория ''bot'' была рядом с ''valve''.
|
||
|
Поскольку плагин являет собой расширение, он не перезаписывает файлы игры, и запускать сервер необходимо указав новый путь к директории игры:
|
||
|
|
||
|
<code>
|
||
|
xash3d -game bot
|
||
|
</code>
|
||
|
|
||
|
Важно учитывать, что при запуске из нестандартной директории, сервер будет отфильтрован большинством мастер серверов, в виду фильтрации по valve.\\
|
||
|
Чтобы решить эту проблему, можно:
|
||
|
* сменить пути DLL в файле gameinfo.txt
|
||
|
* скопировать содержимое директории bot в valve и перезапустить сервер без флага -game bot
|
||
|
|
||
|
Также, чтобы сервер удалял ботов при подключении игроков, важно указать явно минимальное
|
||
|
<file - bot.cfg>
|
||
|
min_bots 1 # не ставить в 0, интерпретируется как false
|
||
|
max_bots 4
|
||
|
</file>
|
||
|
|
||
|
После запуска, настроенные в ''bot.cfg'' персонажи будут добавлены в игру. Плагин является частью проекта [[https://github.com/FWGS/hlsdk-portable/commits/bot10|hlsdk-portable]], при возникновении проблем, возможно потребуется собрать файл ''/valve/dlls/hl.so'' и заменить им оригинальный, хотя в случае с последней версией Steam - все работает без дополнительных действий.
|
||
|
|
||
|
=== Сборка из исходников ===
|
||
|
|
||
|
На сайте есть [[http://hpb-bot.bots-united.com/releases/bot10src.zip|архив с исходниками]], но последнюю версию можно собрать из репозитория с файлами SDK:
|
||
|
|
||
|
<code>
|
||
|
git clone --recursive https://github.com/FWGS/hlsdk-portable.git
|
||
|
git checkout bot10
|
||
|
cmake -B build -S .
|
||
|
cmake --build build
|
||
|
</code>
|
||
|
|
||
|
После компиляции ветки, будет доступен только файл bot.so - остальные файлы нужно собирать отдельно.\\
|
||
|
Если для остальных файлов не нужна особая сборка, можно переименовать bot.so в bot_i486.so и смержить с официальным архивом для Linux, пока что это работает.
|
||
|
|
||
|
==== Bot Number 10 by YGGverse ====
|
||
|
|
||
|
Открытая модификация Bot Number 10 для сервера YGGverse
|
||
|
|
||
|
**1.0.0**
|
||
|
|
||
|
* добавлена возможность установки min_bots=0 (PR #423)
|
||
|
* респавн ботов с конфигурации bot.conf (PR #422)
|
||
|
* поддержка дополнительных скинов
|
||
|
|
||
|
**сборка**
|
||
|
|
||
|
<code>
|
||
|
git clone --recursive https://github.com/YGGverse/hlsdk-portable.git
|
||
|
git checkout bot10-yggverse
|
||
|
cmake -B build -S .
|
||
|
cmake --build build
|
||
|
</code>
|
||
|
|
||
|
Есть [[https://github.com/YGGverse/hlsdk-portable/releases|бинарные релизы]] для более ранних систем.
|
||
|
|
||
|
===== Графити =====
|
||
|
|
||
|
В сетевой игре можно использовать графити, с помощью кнопки T. Изображение выбирается в настройках клиента, раздел "Multiplayer" - "Customize".
|
||
|
|
||
|
Чтобы создать свой логотип, изображение должно быть размером 64х64 пикселя, в палитре Grayscale и формате .BMP
|
||
|
|
||
|
Ниже рассмотрен пример обработки изображения PNG из коллекции [[https://raw.githubusercontent.com/YGGverse/hl-customs/main/icons/ipv6/128x128.png|hl-customs]] в редакторе GIMP:
|
||
|
|
||
|
1. Image → Scale Image → 64x64 / Quanlity: Linear\\
|
||
|
2. Layer → Transparency → Remove Alpha Channel\\
|
||
|
3. Colors → Components → Decompose\\
|
||
|
4. Colors → Invert (черный цвет считается прозрачным)\\
|
||
|
5. File → Export As.. → сохраняем по адресу /valve/logos/filename.bmp\\
|
||
|
|
||
|
Результат на данном примере будет иметь следующий [[https://raw.githubusercontent.com/YGGverse/hl-customs/main/icons/ipv6/valve/logos/ipv6.bmp|вид]]
|
||
|
|
||
|
Следует заметить, что создание Ч/Б графики обусловлено возможностью выбора цвета в интерфейсе игры.
|
||
|
|
||
|
{{:yggdrasil:half_life_on_xash3d:hl-ipv6-wall-graffiti.png?400|HL IPv6 Graffiti}}
|
||
|
|
||
|
===== Игровые сервера =====
|
||
|
|
||
|
==== Skunky ====
|
||
|
|
||
|
* ''%%[300:eaff:7fab:181b::e949]:7588%%'' - без ботов, только Yggdrasil
|
||
|
|
||
|
==== YGGverse ====
|
||
|
|
||
|
Имеется [[https://github.com/YGGverse/half-life-server|открытая конфигурация]] сервера, можно вносить свои предложения или использовать для организации нового сервера.
|
||
|
|
||
|
* ''%%[201:5eb5:f061:678e:7565:6338:c02c:5251]:27015%%'' - карта Crossfire с ботами
|
||
|
* ''%%hl.ygg:27015%%'' - короткий алиас для Alfis
|
||
|
* ''%%hl.ygg.at:27015%%'' - универсальный алиас для 0200::/7
|
||
|
* ''%%94.140.114.89:27015%%'' - алиас Clearnet
|
||
|
* ''%%tls://94.140.114.89:4708%%'' - ускорить пинг, актуально для всех алиасов выше
|
||
|
|
||
|
===== Мастер сервера =====
|
||
|
|
||
|
* [201:23b4:991a:634d:8359:4521:5576:15b7]:27010 - только Yggdrasil подключения
|
||
|
* hl.ygg:27010
|
||
|
* hl.ygg.at:27010
|
||
|
* [200:eaff:7fab:181b:dba8:1f83:1e5:d07b]:27010 - by Skunky
|
||
|
|
||
|
===== Статистика =====
|
||
|
|
||
|
* http://[201:5eb5:f061:678e:7565:6338:c02c:5251]/hl/ ([[http://hl.ygg|hl.ygg]]) - статистика по серверам Yggdrasil, с рейтингами игроков и оповещениями RSS (добавить сервер можно подключившись к мастеру в футере)
|
||
|
===== Ссылки =====
|
||
|
|
||
|
[[https://github.com/FWGS/xash3d-fwgs|Xash3D FWGS]] / [[https://github.com/YGGverse/xash3d-fwgs/branches|YGGverse Edition]]\\
|
||
|
[[https://store.steampowered.com/app/70/HalfLife/|Half-Life в Steam]]\\
|
||
|
[[https://www.svencoop.com/manual/server-config.html|Параметры конфигурации сервера]]\\
|
||
|
[[https://github.com/FWGS/pymaster|официальный pymaster]] | [[https://github.com/xdettlaff/pymaster|более чистая версия от @xdettlaff]] | [[https://github.com/YGGverse/pymaster/tree/v2|адаптация от YGGverse на базе @xdettlaff]] \\
|
||
|
[[https://git.mentality.rip/numas13/xash3d-master|xash3d-master на rust]] | [[http://[316:c51a:62a3:8b9::4]/YGGverse/xash3d-master|зеркало Yggdrasil]]\\
|
||
|
[[https://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol:ru|Информация о мастер-сервере]]\\
|
||
|
[[https://developer.valvesoftware.com/wiki/Server_queries|Серверные запросы с множеством полезных ссылок]]\\
|
||
|
[[http://hpb-bot.bots-united.com/index.html|Боты, совместимые с Xash3D]] | [[https://github.com/YGGverse/hlsdk-portable/tree/bot10-yggverse|Bot Number 10 by YGGverse]]\\
|
||
|
[[https://github.com/YGGverse/hl-php|Библиотека PHP 8 для веб разработчиков]]\\
|
||
|
[[https://gamebanana.com/mods/cats/7734|Каталог скинов]] | [[https://raw.githubusercontent.com/YGGverse/hl-customs/main/icons/yggdrasil/valve/logos/yggdrasil.bmp|Графити Yggdrasil]] | [[https://raw.githubusercontent.com/YGGverse/hl-customs/main/icons/ipv6/valve/logos/ipv6.bmp|Графити IPv6]]
|
||
|
|
||
|
~~DISCUSSION~~
|