Compare commits
40 Commits
c83e3c468f
...
4a1dbef02b
Author | SHA1 | Date |
---|---|---|
c | 4a1dbef02b | |
c | ef8b4deed6 | |
c | f9e72747b0 | |
c | a35533d8b7 | |
c | 90e666a51f | |
c | 5f4a51d189 | |
DeathByDenim | 73e3feaae0 | |
DeathByDenim | 819a783249 | |
DeathByDenim | 49241ba690 | |
DeathByDenim | 4517bbc962 | |
DeathByDenim | 34ab07739e | |
DeathByDenim | cbf6cd07e6 | |
DeathByDenim | 55fa2a41d1 | |
DeathByDenim | 9a062fe2f2 | |
DeathByDenim | 492561e81a | |
DeathByDenim | bfbb73e923 | |
DeathByDenim | 574f181ad8 | |
DeathByDenim | 909110b4cb | |
DeathByDenim | 633d68c517 | |
DeathByDenim | 639d4485b6 | |
DeathByDenim | bcaef38276 | |
DeathByDenim | 26b00f60b3 | |
DeathByDenim | 6ad2fffbbc | |
DeathByDenim | 852f77ef5e | |
DeathByDenim | 392be4c3f3 | |
DeathByDenim | 1ce13fcbb1 | |
DeathByDenim | cd86a54e25 | |
DeathByDenim | b7f850f661 | |
DeathByDenim | dff12dae94 | |
DeathByDenim | c535b9fa2e | |
DeathByDenim | 06cfda8440 | |
DeathByDenim | f6feee34a4 | |
DeathByDenim | 0a6694153d | |
DeathByDenim | 4d9a543d8f | |
DeathByDenim | 2fc06cff0c | |
DeathByDenim | d71f8fa743 | |
DeathByDenim | bf14133b13 | |
DeathByDenim | 2496ca1b0b | |
DeathByDenim | 9a9ce43b63 | |
DeathByDenim | 8260ed15b2 |
|
@ -0,0 +1,5 @@
|
|||
.sass-cache/
|
||||
website/_sass/bootstrap/
|
||||
website/_site/
|
||||
website/config.yml
|
||||
web.tar.bz2
|
34
README.md
|
@ -9,16 +9,21 @@ panel for game servers that have interactive shells.
|
|||
|
||||
The following games are deployed:
|
||||
|
||||
* Armagetron Advanced
|
||||
* Bzflag
|
||||
* Hedgewars
|
||||
* Lix
|
||||
* Mindustry
|
||||
* Minetest (Blockbomber mod)
|
||||
* Odamex
|
||||
* OpenHV
|
||||
* OpenSpades
|
||||
* OpenSoldat
|
||||
* Shattered Paradise
|
||||
* SuperTuxKart
|
||||
* Super Tux Party
|
||||
* Teeworlds (optionally as DDrace)
|
||||
* UFO: Alien Invasion
|
||||
* Unvanquished
|
||||
* Xonotic (optionally as Battle Royale)
|
||||
|
||||
|
@ -42,6 +47,35 @@ The webpage will display "OFFLINE" and not attempt to show the server stats.
|
|||
|
||||
The password for the admin panel as well as for game servers that support admin password is stored in `/etc/gameserverpassword`. The username for the admin panel is just `onfoss`.
|
||||
|
||||
## Website
|
||||
|
||||
The website is generated using Jekyll which uses a config.yml that is generated by the deploy script. Additionally, there is a YAML file called events.yml in the _data directory where events are stored. The formatting is:
|
||||
|
||||
```
|
||||
- date: 2022-12-17T14:00:00UTC
|
||||
intro: "onFOSS-LAN hosted by DeathByDenim"
|
||||
games:
|
||||
- time: "14:00"
|
||||
title: "Get together"
|
||||
- time: "14:30"
|
||||
title: "Doom (ODAMEX) XMAS mod"
|
||||
- time: "15:15"
|
||||
title: "Teeworlds"
|
||||
tournament: true
|
||||
- time: "16:00"
|
||||
title: "OpenSpades"
|
||||
- time: "17:00"
|
||||
title: "Break"
|
||||
- time: "18:00"
|
||||
title: "Lix"
|
||||
- time: "18:30"
|
||||
title: "Free Play!"
|
||||
extras: ["Shattered Paradise"]
|
||||
```
|
||||
Each game must have a title and it optionally can have a time as well. The optional field extras lists games that were played as part of a bigger category, in this example the free play section.
|
||||
|
||||
Finally, you can also specify tournament which will make this game appear in the tournament page.
|
||||
|
||||
## Repository
|
||||
|
||||
The main version of this git repository is on [git.libregaming.org](https://git.libregaming.org/DeathByDenim/gameserver). There is a mirror on [Github](https://github.com/DeathByDenim/gameserver)
|
||||
|
|
77
deploy.sh
|
@ -37,6 +37,7 @@ fi
|
|||
export stk_version="latest"
|
||||
export bzflag_version="2.4"
|
||||
export mindustry_version="latest"
|
||||
export odamex_version="latest"
|
||||
export openhv_version="latest"
|
||||
export teeworlds_version="latest"
|
||||
export teeworldsddrace_version="16.1"
|
||||
|
@ -66,7 +67,7 @@ apt install --assume-yes \
|
|||
fuse g++ gcc curl firewalld automake autoconf libtool \
|
||||
libcurl3-dev libc-ares-dev zlib1g-dev libncurses-dev make python3-aiohttp \
|
||||
nginx-core certbot python3-certbot-nginx sudo python3-psutil \
|
||||
ldc dub libenet-dev python3-bcrypt jq
|
||||
ldc dub libenet-dev python3-bcrypt jq telnet jekyll
|
||||
|
||||
# Create the user for running the game servers
|
||||
if ! getent passwd ${systemuser}; then
|
||||
|
@ -89,23 +90,32 @@ cp console2web/console2web.py /usr/bin/console2web
|
|||
"$(dirname "$0")"/scripts/deploy_webserver.sh
|
||||
|
||||
# Deploy the game servers
|
||||
"$(dirname "$0")"/scripts/deploy_supertuxkart.sh
|
||||
"$(dirname "$0")"/scripts/deploy_bzflag.sh
|
||||
"$(dirname "$0")"/scripts/deploy_hedgewars.sh
|
||||
"$(dirname "$0")"/scripts/deploy_lix.sh
|
||||
"$(dirname "$0")"/scripts/deploy_mindustry.sh
|
||||
"$(dirname "$0")"/scripts/deploy_openhv.sh
|
||||
"$(dirname "$0")"/scripts/deploy_openspades.sh
|
||||
"$(dirname "$0")"/scripts/deploy_teeworlds.sh
|
||||
"$(dirname "$0")"/scripts/deploy_teeworlds-ddrace.sh
|
||||
"$(dirname "$0")"/scripts/deploy_unvanquished.sh
|
||||
"$(dirname "$0")"/scripts/deploy_xonotic.sh
|
||||
"$(dirname "$0")"/scripts/deploy_xonotic-br.sh
|
||||
"$(dirname "$0")"/scripts/deploy_armagetron_advanced.sh
|
||||
"$(dirname "$0")"/scripts/deploy_opensoldat.sh
|
||||
"$(dirname "$0")"/scripts/deploy_supertuxparty.sh
|
||||
"$(dirname "$0")"/scripts/deploy_ufoai.sh
|
||||
"$(dirname "$0")"/scripts/deploy_shatteredparadise.sh
|
||||
games="\
|
||||
supertuxkart \
|
||||
bzflag \
|
||||
hedgewars \
|
||||
lix \
|
||||
mindustry \
|
||||
minetest \
|
||||
odamex \
|
||||
openhv \
|
||||
openspades \
|
||||
teeworlds \
|
||||
teeworlds-ddrace \
|
||||
unvanquished \
|
||||
xonotic \
|
||||
xonotic-br \
|
||||
armagetron_advanced \
|
||||
opensoldat \
|
||||
supertuxparty \
|
||||
ufoai \
|
||||
shatteredparadise"
|
||||
failed_games=""
|
||||
for game in $games; do
|
||||
if ! "$(dirname "$0")"/scripts/deploy_${game}.sh; then
|
||||
failed_games+="${game}\n"
|
||||
fi
|
||||
done
|
||||
|
||||
# Apply all pending firewall rules. NGINX shouldn't have to be restarted, but it seems to help.
|
||||
firewall-cmd --reload
|
||||
|
@ -113,3 +123,34 @@ systemctl restart nginx
|
|||
|
||||
echo
|
||||
echo "Installation complete. Password is ${systempassword}"
|
||||
if [ -n "$failed_games" ]; then
|
||||
echo "The following games failed to install:"
|
||||
echo -e "$failed_games"
|
||||
echo
|
||||
echo "Use /usr/local/bin/redeploy.sh [game] to try again"
|
||||
fi
|
||||
|
||||
cat > /usr/local/bin/redeploy.sh <<EOF
|
||||
#!/bin/bash
|
||||
export stk_version="latest"
|
||||
export bzflag_version="2.4"
|
||||
export mindustry_version="latest"
|
||||
export odamex_version="latest"
|
||||
export openhv_version="latest"
|
||||
export teeworlds_version="latest"
|
||||
export teeworldsddrace_version="16.1"
|
||||
export unvanquished_version="latest"
|
||||
export xonotic_version="0.8.5"
|
||||
export lix_version="latest"
|
||||
export shatteredparadise_version="latest"
|
||||
|
||||
export systemuser="onfoss"
|
||||
export letsencryptemail="jarno@jarno.ca"
|
||||
export DOMAINNAME="$DOMAINNAME"
|
||||
export HOSTEDBYNAME="$HOSTEDBYNAME"
|
||||
export systempassword="$systempassword"
|
||||
export systemuserhome="$systemuserhome"
|
||||
|
||||
"$(dirname "$(realpath -s "$0")")"/scripts/deploy_\${1}.sh
|
||||
EOF
|
||||
chmod +x /usr/local/bin/redeploy.sh
|
||||
|
|
|
@ -23,18 +23,30 @@
|
|||
|
||||
set -e
|
||||
|
||||
if ! which jekyll > /dev/null; then
|
||||
echo "Jekyll is required to generate the website"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
webroot=${TMPDIR:-/tmp}/website
|
||||
mkdir -p ${webroot}
|
||||
cp -r "$(dirname "$0")"/website/[^_]* ${webroot}
|
||||
for file in ${webroot}/*\.html ${webroot}/js/*\.js; do
|
||||
sed -i $file -e s/"DOMAINNAME"/"${DOMAINNAME}"/g
|
||||
done
|
||||
for file in ${webroot}/*\.html; do
|
||||
sed -i $file -e s/"HOSTEDBYNAME"/"${HOSTEDBYNAME}"/g
|
||||
done
|
||||
for file in ${webroot}/*\.html; do
|
||||
sed -i $file -e "/SERVERSTATE/r $(dirname "$0")/website/_state/offline.html"
|
||||
sed -i $file -e "/SERVERSTATE/d"
|
||||
done
|
||||
tar -cjf web.tar.bz2 --directory="${webroot}" .
|
||||
cp -r "$(dirname "$0")"/website/* ${webroot}
|
||||
|
||||
curl --location https://github.com/twbs/bootstrap/archive/v5.2.3.zip > ${TMPDIR:-/tmp}/bootstrap.zip
|
||||
unzip -o -d ${TMPDIR:-/tmp}/bootstrap ${TMPDIR:-/tmp}/bootstrap.zip "bootstrap-5.2.3/scss/*"
|
||||
if [ -d "$(dirname "$0")"/../website/_sass/bootstrap ]; then
|
||||
rm -r "$(dirname "$0")"/../website/_sass/bootstrap
|
||||
fi
|
||||
mv ${TMPDIR:-/tmp}/bootstrap/bootstrap-5.2.3/scss ${webroot}/_sass/bootstrap
|
||||
rm -r ${TMPDIR:-/tmp}/bootstrap.zip ${TMPDIR:-/tmp}/bootstrap
|
||||
cat > ${webroot}/_config.yml <<EOF
|
||||
content:
|
||||
hosted_by_name: "${HOSTEDBYNAME}"
|
||||
domain_name: "${DOMAINNAME}"
|
||||
offline: true
|
||||
ssl: true
|
||||
md5password: "$(echo -n "${systempassword}" | md5sum | cut -d' ' -f1)"
|
||||
EOF
|
||||
jekyll build --source ${webroot} --destination ${webroot}/_site
|
||||
tar -cjf web.tar.bz2 --directory="${webroot}/_site" .
|
||||
rm -rf "${webroot}"
|
||||
|
|
|
@ -43,8 +43,8 @@ EOF
|
|||
|
||||
systemctl restart armagetronad-dedicated.service
|
||||
|
||||
cat > /etc/nginx/gameserver.d/armagetronad.conf <<EOF
|
||||
location /armagetronad {
|
||||
cat > /etc/nginx/gameserver.d/armagetron.conf <<EOF
|
||||
location /armagetron {
|
||||
proxy_pass http://localhost:62551/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade \$http_upgrade;
|
||||
|
|
|
@ -21,6 +21,8 @@ if [ -e /etc/systemd/system/bzflag.service ]; then
|
|||
systemctl stop bzflag
|
||||
fi
|
||||
|
||||
apt-get -y install build-essential pkg-config
|
||||
|
||||
# Install BZFlag
|
||||
mkdir -p ${TMPDIR:-/tmp}/bzflag-build
|
||||
cd ${TMPDIR:-/tmp}/bzflag-build
|
||||
|
|
|
@ -35,7 +35,7 @@ git clone --branch v${lix_version} https://github.com/SimonN/LixD.git
|
|||
cd LixD/src/server
|
||||
dub build
|
||||
mkdir -p /opt/lix-${lix_version}
|
||||
cp ../../bin/server /opt/lix-${lix_version}
|
||||
cp ../../bin/lixserv /opt/lix-${lix_version}
|
||||
rm -rf ${TMPDIR:-/tmp}/lix-build
|
||||
|
||||
# Create SystemD unit
|
||||
|
@ -45,7 +45,7 @@ Description=Lix server
|
|||
After=network.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/opt/lix-${lix_version}/server
|
||||
ExecStart=/opt/lix-${lix_version}/lixserv
|
||||
Restart=on-failure
|
||||
User=${systemuser}
|
||||
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
#!/bin/bash
|
||||
# Collection of scripts to deploy a server hosting several open-source games
|
||||
# Copyright (C) 2022 Jarno van der Kolk
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as published
|
||||
# by the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
set -e
|
||||
|
||||
apt install --assume-yes libsqlite3-dev zlib1g-dev libgmp-dev libjsoncpp-dev libzstd-dev libluajit-5.1-dev cmake
|
||||
|
||||
if [ -e /etc/systemd/system/minetest.service ]; then
|
||||
systemctl stop minetest
|
||||
fi
|
||||
|
||||
if [ -z ${minetest_version} ] || [ "${minetest_version}" = "latest" ]; then
|
||||
minetest_version=$(curl -s https://api.github.com/repos/minetest/minetest/releases/latest | jq -r '.["tag_name"]')
|
||||
fi
|
||||
|
||||
# Install minetest
|
||||
mkdir -p ${TMPDIR:-/tmp}/minetest-build
|
||||
curl --location "https://github.com/minetest/minetest/archive/refs/tags/${minetest_version}.tar.gz" | tar --extract --gzip --no-same-owner --directory=${TMPDIR:-/tmp}/minetest-build
|
||||
mkdir -p ${TMPDIR:-/tmp}/minetest-build/minetest-${minetest_version}/build
|
||||
git clone --depth 1 https://github.com/minetest/minetest_game.git ${TMPDIR:-/tmp}/minetest-build/minetest-${minetest_version}/games/minetest_game
|
||||
git clone --depth 1 --branch "1.9.0mt10" https://github.com/minetest/irrlicht.git ${TMPDIR:-/tmp}/minetest-build/minetest-${minetest_version}/lib/irrlichtmt
|
||||
cd ${TMPDIR:-/tmp}/minetest-build/minetest-${minetest_version}/build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/opt/minetest-${minetest_version} -DBUILD_CLIENT=FALSE -DBUILD_SERVER=TRUE ..
|
||||
make
|
||||
make install
|
||||
cd -
|
||||
rm -rf ${TMPDIR:-/tmp}/minetest-build
|
||||
|
||||
sudo -u ${systemuser} mkdir -p /home/${systemuser}/.minetest/games
|
||||
curl --location https://content.minetest.net/packages/MisterE/blockbomber/releases/11576/download/ > ${TMPDIR:-/tmp}/blockbomber.zip
|
||||
sudo -u ${systemuser} unzip -o -d /home/${systemuser}/.minetest/games "${TMPDIR:-/tmp}"/blockbomber.zip
|
||||
rm -f "${TMPDIR:-/tmp}/blockbomber.zip"
|
||||
|
||||
cat > /etc/systemd/system/minetest.service <<EOF
|
||||
[Unit]
|
||||
Description=Minetest server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/opt/minetest-${minetest_version}/bin/minetestserver --config /etc/minetest.conf --gameid blockbomber
|
||||
Restart=on-failure
|
||||
User=${systemuser}
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
cat > /etc/minetest.conf <<EOF
|
||||
server_name = onFOSS LAN server
|
||||
server_address = ${DOMAINNAME}
|
||||
server_announce = false
|
||||
max_users = 32
|
||||
enable_split_login_register = false
|
||||
ipv6_server = true
|
||||
EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now minetest.service
|
||||
|
||||
# Add firewall rules
|
||||
firewall-cmd --zone=public --add-port=30000/udp --permanent
|
|
@ -0,0 +1,117 @@
|
|||
#!/bin/bash
|
||||
# Collection of scripts to deploy a server hosting several open-source games
|
||||
# Copyright (C) 2022 Jarno van der Kolk
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as published
|
||||
# by the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
set -e
|
||||
|
||||
if [ -e /etc/systemd/system/odamex.service ]; then
|
||||
systemctl stop odamex
|
||||
fi
|
||||
|
||||
if [ -z ${odamex_version} ] || [ "${odamex_version}" = "latest" ]; then
|
||||
odamex_version=$(curl -s https://api.github.com/repos/odamex/odamex/releases/latest | jq -r '.["tag_name"]')
|
||||
fi
|
||||
|
||||
# Install ODAMEX
|
||||
apt install --assume-yes libsdl2-dev libsdl2-mixer-dev cmake deutex freedoom libpng-dev
|
||||
mkdir -p ${TMPDIR:-/tmp}/odamex-build
|
||||
curl --location https://github.com/odamex/odamex/releases/download/${odamex_version}/odamex-src-${odamex_version}.tar.gz | tar --extract --gz --no-same-owner --directory="${TMPDIR:-/tmp}/odamex-build"
|
||||
mkdir ${TMPDIR:-/tmp}/odamex-build/odamex-src-${odamex_version}/build
|
||||
cd ${TMPDIR:-/tmp}/odamex-build/odamex-src-${odamex_version}/build
|
||||
cmake -DBUILD_CLIENT=OFF -DBUILD_SERVER=ON -DBUILD_LAUNCHER=OFF -DCMAKE_INSTALL_PREFIX=/opt/odamex-${odamex_version} ..
|
||||
make
|
||||
make install
|
||||
|
||||
# Build AppImage
|
||||
mkdir -p AppDir
|
||||
cmake -DBUILD_CLIENT=ON -DBUILD_SERVER=OFF -DBUILD_LAUNCHER=OFF -DCMAKE_INSTALL_PREFIX=AppDir ..
|
||||
make
|
||||
make install
|
||||
curl -O --location 'https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage'
|
||||
curl -O --location 'https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage'
|
||||
chmod +x linuxdeploy-plugin-appimage-x86_64.AppImage linuxdeploy-x86_64.AppImage
|
||||
mkdir -p AppDir/usr/share/applications
|
||||
cat > AppDir/usr/share/applications/odamex.desktop <<EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Categories=Game
|
||||
Name=Odamex
|
||||
Exec=odamex
|
||||
Icon=odamex
|
||||
StartupNotify=false
|
||||
Terminal=false
|
||||
EOF
|
||||
for f in ../media/icon_odamex_*.png; do
|
||||
resolution=$(echo $f | sed s/"..\/media\/icon_odamex_\([0-9]*\).png"/\\1/g)
|
||||
mkdir -p AppDir/usr/share/icons/hicolor/${resolution}x${resolution}/apps/
|
||||
cp $f AppDir/usr/share/icons/hicolor/${resolution}x${resolution}/apps/odamex.png
|
||||
done
|
||||
cat > AppDir/AppRun <<EOF
|
||||
#!/bin/bash
|
||||
export DOOMWADPATH=\$APPDIR/share/odamex/
|
||||
\$APPDIR/bin/odamex \$@
|
||||
EOF
|
||||
chmod +x AppDir/AppRun
|
||||
./linuxdeploy-x86_64.AppImage --appdir AppDir --output=appimage
|
||||
cp Odamex-x86_64.AppImage /var/www/html/assets
|
||||
cd -
|
||||
rm -rf ${TMPDIR:-/tmp}/odamex-build
|
||||
|
||||
proto="http"
|
||||
if [ x"$NOSSL" = "x" ] || [ $NOSSL -ne 1 ]; then
|
||||
proto="https"
|
||||
fi
|
||||
|
||||
mkdir -p /home/${systemuser}/.odamex/
|
||||
cat > /home/${systemuser}/.odamex/odasrv.cfg <<EOF
|
||||
set sv_hostname "OnFOSS LAN"
|
||||
set sv_motd "Welcome to OnFOSS LAN DOOM server"
|
||||
set sv_website "${proto}://${DOMAINNAME}/"
|
||||
set sv_downloadsites "${proto}://${DOMAINNAME}/wads/"
|
||||
set rcon_password "${systempassword}"
|
||||
set sv_gametype "0"
|
||||
set sv_skill "3"
|
||||
set sv_maxplayers "32"
|
||||
set sv_monstersrespawn 120
|
||||
set sv_warmup 1
|
||||
set sv_countdown 5
|
||||
EOF
|
||||
chown -R ${systemuser}: /home/${systemuser}/.odamex/
|
||||
|
||||
# Create SystemD unit
|
||||
cat > /etc/systemd/system/odamex.service <<EOF
|
||||
[Unit]
|
||||
Description=ODAMEX server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/opt/odamex-${odamex_version}/bin/odasrv
|
||||
Restart=on-failure
|
||||
User=${systemuser}
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
# Make wads available for download
|
||||
mkdir -p /var/www/html/wads
|
||||
cp -r /usr/share/games/doom/freedoom?.wad /var/www/html/wads
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now odamex.service
|
||||
|
||||
# Add firewall rules
|
||||
firewall-cmd --zone=public --add-port=10666/udp --permanent
|
|
@ -188,7 +188,6 @@ cat > /etc/systemd/system/opensoldat.service <<EOF
|
|||
[Unit]
|
||||
Description=Soldat server
|
||||
After=network.target
|
||||
Requires=opensoldat-monitor.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/games/opensoldatserver -sv_adminpassword "${systempassword}"
|
||||
|
|
|
@ -47,7 +47,7 @@ sudo -u ${systemuser} sed -i ${systemuserhome}/.config/piqueserver/config.toml \
|
|||
-e s/"color = \[ 0, 0, 255\]"/"color = [ 0, 255, 255]"/ \
|
||||
-e s/"name = \"Green\""/"name = \"Pinkster\""/ \
|
||||
-e s/"color = \[ 0, 255, 0\]"/"color = [ 255, 0, 255]"/ \
|
||||
-e s/" \"classicgen\","/" \"island\",\n \"pinpoint\",\n \"realisticbridge\",\n \"rocketisland\",\n \"submarine\","/ \
|
||||
-e s/" \"classicgen\","/" \"smallrandomisland\",\n \"island\",\n \"pinpoint\",\n \"realisticbridge\",\n \"rocketisland\",\n \"submarine\","/ \
|
||||
-e s/"default_time_limit = \"2hours\""/"default_time_limit = \"20minutes\""/
|
||||
deactivate
|
||||
|
||||
|
@ -69,6 +69,7 @@ for map in island pinpoint realisticbridge rocketisland submarine; do
|
|||
curl "https://raw.githubusercontent.com/kinvaris/openspades-maps/master/${map}.txt" > ${systemuserhome}/.config/piqueserver/maps/${map}.txt
|
||||
curl "https://raw.githubusercontent.com/kinvaris/openspades-maps/master/${map}.vxl" > ${systemuserhome}/.config/piqueserver/maps/${map}.vxl
|
||||
done
|
||||
curl "https://raw.githubusercontent.com/DeathByDenim/openspades-maps/main/smallrandomisland.txt" > ${systemuserhome}/.config/piqueserver/maps/smallrandomisland.txt
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now openspades.service
|
||||
|
|
|
@ -30,7 +30,7 @@ fi
|
|||
# Install SuperTuxKart
|
||||
stk_dir="/opt/SuperTuxKart-${stk_version}"
|
||||
mkdir -p ${stk_dir}
|
||||
curl --location "https://github.com/supertuxkart/stk-code/releases/download/${stk_version}/SuperTuxKart-${stk_version}-linux-64bit.tar.xz" | tar --extract --xz --no-same-owner --strip-components=1 --directory=${stk_dir}
|
||||
curl --location "https://github.com/supertuxkart/stk-code/releases/download/${stk_version}/SuperTuxKart-${stk_version}-linux-x86_64.tar.xz" | tar --extract --xz --no-same-owner --strip-components=1 --directory=${stk_dir}
|
||||
ln -s ${stk_dir}/bin/supertuxkart /usr/games/supertuxkart
|
||||
|
||||
# Configuration
|
||||
|
|
|
@ -54,8 +54,9 @@ fi
|
|||
|
||||
unzip -o -d "${teeworldsddrace_directory}"/data/maps ${TMPDIR:-/tmp}/novice.zip
|
||||
for f in "${teeworldsddrace_directory}"/data/maps/novice/maps/*.map; do
|
||||
"${teeworldsddrace_directory}"/map_convert_07 "$f" "`echo "$f" | sed s/"maps\/novice\/maps"/"maps7"/g`"
|
||||
cp "$f" "${teeworldsddrace_directory}"/data/maps
|
||||
if "${teeworldsddrace_directory}"/map_convert_07 "$f" "`echo "$f" | sed s/"maps\/novice\/maps"/"maps7"/g`"; then
|
||||
cp "$f" "${teeworldsddrace_directory}"/data/maps
|
||||
fi
|
||||
done
|
||||
rm -rf "${teeworldsddrace_directory}"/data/maps/novice
|
||||
|
||||
|
|
|
@ -52,9 +52,9 @@ sv_maprotation dm2,dm3,dm6,dm7
|
|||
|
||||
add_vote "Restart Round" "restart"
|
||||
add_vote "Reload Map" "reload"
|
||||
add_vote "Change Gamemode to DM" "exec dm.cfg"
|
||||
add_vote "Change Gamemode to CTF" "exec ctf.cfg"
|
||||
add_vote "Change Gamemode to TDM" "exec tdm.cfg"
|
||||
add_vote "Change Gamemode to DM" "exec /etc/teedm.cfg"
|
||||
add_vote "Change Gamemode to CTF" "exec /etc/teectf.cfg"
|
||||
add_vote "Change Gamemode to TDM" "exec /etc/teetdm.cfg"
|
||||
add_vote "Change Map to ctf1" "change_map ctf1"
|
||||
add_vote "Change Map to ctf2" "change_map ctf2"
|
||||
add_vote "Change Map to ctf3" "change_map ctf3"
|
||||
|
@ -68,6 +68,27 @@ add_vote "Change Map to dm8" "change_map dm8"
|
|||
add_vote "Change Map to dm9" "change_map dm9"
|
||||
EOF
|
||||
|
||||
cat > /etc/teedm.cfg <<EOF
|
||||
sv_maprotation dm2,dm3,dm6,dm7
|
||||
sv_map dm3
|
||||
sv_scorelimit 20
|
||||
sv_gametype dm
|
||||
EOF
|
||||
|
||||
cat > /etc/teetdm.cfg <<EOF
|
||||
sv_maprotation dm2,dm3,dm6,dm7
|
||||
sv_map dm3
|
||||
sv_scorelimit 20
|
||||
sv_gametype dm
|
||||
EOF
|
||||
|
||||
cat > /etc/teectf.cfg <<EOF
|
||||
sv_maprotation ctf2,ctf3,ctf4
|
||||
sv_map ctf2
|
||||
sv_scorelimit 400
|
||||
sv_gametype ctf
|
||||
EOF
|
||||
|
||||
cat > /etc/systemd/system/teeworlds.service <<EOF
|
||||
[Unit]
|
||||
Description=Teeworlds server
|
||||
|
|
|
@ -26,28 +26,29 @@ firewall-cmd --reload
|
|||
|
||||
# Request SSL certificate. This assumes DNS has been set up already
|
||||
if [ x"$NOSSL" = "x" ] || [ $NOSSL -ne 1 ]; then
|
||||
ssl="true"
|
||||
certbot -n --nginx -d ${DOMAINNAME} -d www.${DOMAINNAME} --agree-tos -m "${letsencryptemail}"
|
||||
else
|
||||
ssl="false"
|
||||
fi
|
||||
|
||||
# Put the website files in place
|
||||
cp -r "$(dirname "$0")"/../website/[^_]* /var/www/html
|
||||
for file in /var/www/html/*\.html /var/www/html/js/*\.js; do
|
||||
sed -i $file -e s/"DOMAINNAME"/"${DOMAINNAME}"/g
|
||||
done
|
||||
for file in /var/www/html/*\.html; do
|
||||
sed -i $file -e s/"HOSTEDBYNAME"/"${HOSTEDBYNAME}"/g
|
||||
done
|
||||
for file in /var/www/html/*\.html; do
|
||||
sed -i $file -e "/SERVERSTATE/r $(dirname "$0")/../website/_state/online.html"
|
||||
sed -i $file -e "/SERVERSTATE/d"
|
||||
done
|
||||
if [ x"$NOSSL" != "x" ] && [ $NOSSL -eq 1 ]; then
|
||||
for file in /var/www/html/js/*\.js; do
|
||||
sed -i $file -e s/"wss:"/"ws:"/g
|
||||
sed -i $file -e s/"https:"/"http:"/g
|
||||
done
|
||||
# Generate the website and put in place
|
||||
curl --location https://github.com/twbs/bootstrap/archive/v5.2.3.zip > ${TMPDIR:-/tmp}/bootstrap.zip
|
||||
unzip -o -d ${TMPDIR:-/tmp}/bootstrap ${TMPDIR:-/tmp}/bootstrap.zip "bootstrap-5.2.3/scss/*"
|
||||
if [ -d "$(dirname "$0")"/../website/_sass/bootstrap ]; then
|
||||
rm -r "$(dirname "$0")"/../website/_sass/bootstrap
|
||||
fi
|
||||
sed -i /var/www/html/js/consoles.js -e s/"MD5GAMEPASSWORD"/"$(echo -n "${systempassword}" | md5sum | cut -d' ' -f1)"/g
|
||||
mv ${TMPDIR:-/tmp}/bootstrap/bootstrap-5.2.3/scss "$(dirname "$0")"/../website/_sass/bootstrap
|
||||
rm -r ${TMPDIR:-/tmp}/bootstrap.zip ${TMPDIR:-/tmp}/bootstrap
|
||||
cat > "$(dirname "$0")"/../website/_config.yml <<EOF
|
||||
content:
|
||||
hosted_by_name: "${HOSTEDBYNAME}"
|
||||
domain_name: "${DOMAINNAME}"
|
||||
offline: false
|
||||
ssl: ${ssl}
|
||||
md5password: "$(echo -n "${systempassword}" | md5sum | cut -d' ' -f1)"
|
||||
EOF
|
||||
jekyll build --source "$(dirname "$0")"/../website --destination /var/www/html
|
||||
|
||||
# Patch the NGINX configuration for the web sockets
|
||||
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
|
||||
|
|
|
@ -51,6 +51,9 @@ sv_vote_gametype 1
|
|||
sv_vote_gametype_options "dm tdm dom ctf ca rc nb as kh inv ka lms ons"
|
||||
sv_vote_call 1
|
||||
sv_weaponstats_file http://www.xonotic.org/weaponbalance/
|
||||
sv_logscores_console 1
|
||||
sv_logscores_file 1
|
||||
sv_logscores_filename xonscore.txt
|
||||
EOF
|
||||
|
||||
cat > /etc/systemd/system/xonotic.service <<EOF
|
||||
|
@ -82,4 +85,8 @@ location /xonotic {
|
|||
}
|
||||
EOF
|
||||
|
||||
if ! [ -h /var/www/html/xonscore.txt ]; then
|
||||
ln -s "${systemuserhome}"/xonotic/data/data/xonscore.txt /var/www/html
|
||||
fi
|
||||
|
||||
firewall-cmd --zone=public --add-port=26000/udp --permanent
|
||||
|
|
|
@ -0,0 +1,99 @@
|
|||
- date: 2023-05-06T12:00:00UTC
|
||||
intro: "onFOSS-LAN hosted by hribhrib"
|
||||
games:
|
||||
- time: "12:00"
|
||||
title: "Get and chill together"
|
||||
- time: "13:00"
|
||||
title: "OpenSpades"
|
||||
- time: "14:30"
|
||||
title: "Blockbomber"
|
||||
- time: "15:30"
|
||||
title: "Break"
|
||||
- time: "16:00"
|
||||
title: "Xonotic"
|
||||
tournament: true
|
||||
- time: "18:00"
|
||||
title: "Break"
|
||||
- time: "18:30"
|
||||
title: "OpenHV"
|
||||
- time: "20:00"
|
||||
title: "Mindustry"
|
||||
- date: 2022-12-17T14:00:00UTC
|
||||
intro: "onFOSS-LAN hosted by DeathByDenim"
|
||||
games:
|
||||
- time: "14:00"
|
||||
title: "Get together"
|
||||
- time: "14:30"
|
||||
title: "Doom (ODAMEX) XMAS mod"
|
||||
- time: "15:15"
|
||||
title: "Teeworlds"
|
||||
- time: "16:00"
|
||||
title: "OpenSpades"
|
||||
- time: "17:00"
|
||||
title: "Break"
|
||||
- time: "18:00"
|
||||
title: "Lix"
|
||||
- time: "18:30"
|
||||
title: "Free Play!"
|
||||
extras: ["Shattered Paradise"]
|
||||
- date: 2022-07-02T14:00:00UTC
|
||||
intro: "onFOSS-LAN hosted by DeathByDenim"
|
||||
games:
|
||||
- time: "14:00"
|
||||
title: "OpenSoldat"
|
||||
- time: "15:00"
|
||||
title: "Lix"
|
||||
- time: "16:00"
|
||||
title: "Teeworlds DDrace"
|
||||
- time: "17:00"
|
||||
title: "Free play!"
|
||||
extras: ["OpenSpades", "OpenHV"]
|
||||
- date: 2022-03-19T14:00:00UTC
|
||||
intro: "onFOSS-LAN hosted by DeathByDenim"
|
||||
games:
|
||||
- time: "14:00"
|
||||
title: "Armagetron Advanced"
|
||||
- time: "15:00"
|
||||
title: "Xonotic - Battle Royale"
|
||||
- time: "16:00"
|
||||
title: "Lix"
|
||||
- time: "16:30"
|
||||
title: "Free play!"
|
||||
extras: ["Hedgewars", "SuperTuxKart (Race and Soccer modes)"]
|
||||
content: |
|
||||
<p>
|
||||
Additionally, there was a fundraiser to help the people suffering
|
||||
from the war in Ukraine 🇺🇦. I matched your donation
|
||||
(up to $500 total) and additionally, the government of Canada
|
||||
🇨🇦 will match mine until 18 March. So, that's triple
|
||||
the value for any donation you make. It doesn't have to be to the
|
||||
Canadian Red Cross, you probably have a local equivalent.
|
||||
</p>
|
||||
<p>
|
||||
<em>UPDATE (2022-03-08)</em>: Canada reached the $10M already so they are not
|
||||
doubling anymore. I'll still double but this means your amount won't
|
||||
count as triple anymore.
|
||||
</p>
|
||||
<p>
|
||||
<em>UPDATE (2022-03-13)</em>: Canada increased the limit to $30M, so
|
||||
any donation you make is once again tripled.
|
||||
</p>
|
||||
<p>
|
||||
<em>UPDATE (2022-03-14)</em>: Oh, never mind, this goal has already
|
||||
been reached. Anyway, I'll still match what you donate!
|
||||
</p>
|
||||
<p>
|
||||
<em>UPDATE (2022-03-19)</em>: Donations are closed. A total amount
|
||||
of €40 was collected and the equivalent of CAD 55.64 was
|
||||
donated to the Canadian Red Cross.
|
||||
</p>
|
||||
<p>List of donations:</p>
|
||||
<ul>
|
||||
<li>Anonymous: €40</li>
|
||||
</ul>
|
||||
- date: 2022-02-12T15:00UTC
|
||||
intro: "Session to test if it all works as intended"
|
||||
games:
|
||||
- title: "OpenSpades"
|
||||
- title: "OpenHV"
|
||||
- title: "Xonotic"
|
|
@ -0,0 +1,118 @@
|
|||
- name: armagetron
|
||||
title: "Armagetron Advanced"
|
||||
description: "Drive your lightcycle and leave a lightwall behind you. Survive as long as you can and try to make other run into walls."
|
||||
download_link: "http://www.armagetronad.org/downloads.php"
|
||||
has_console: true
|
||||
console_output_coloring: "Terminal"
|
||||
console_initial_command: "players"
|
||||
console_help_link: "http://wiki.armagetronad.org/index.php?title=Console_Commands"
|
||||
console_example_commands:
|
||||
- ["players", "Show current players"]
|
||||
- ["kick <name>", "Kick the player"]
|
||||
- ["num_ais <num>", "Set the number of AIs for games with more than one player"]
|
||||
- ["limit_rounds", "End the match after this number of rounds"]
|
||||
- name: bzflag
|
||||
title: "Bzflag"
|
||||
description: "Drive around in a tank that can jump, trying to shoot your opponents while dodging their bullets."
|
||||
download_link: "https://www.bzflag.org/downloads/"
|
||||
has_console: true
|
||||
console_output_coloring: "Terminal"
|
||||
console_initial_command: "/playerlist"
|
||||
console_help_link: "https://wiki.bzflag.org/Slash_Commands"
|
||||
console_example_commands:
|
||||
- ["/playerlist", "Display list of players"]
|
||||
- ["/kick <name>", "Kick the player"]
|
||||
- ["/gameover", "end the current game"]
|
||||
- name: hedgewars
|
||||
title: "Hedgewars"
|
||||
description: "Worms-like game where your team of hedgehogs needs to destroy the other teams using the ludicrous arsenal at their disposal."
|
||||
download_link: "https://www.hedgewars.org/download.html"
|
||||
- name: lix
|
||||
title: "Lix"
|
||||
description: "Lemmings-like game where you need to guide your little people to safety despite their best efforts of wandering into things that will kill them."
|
||||
download_link: "https://github.com/SimonN/LixD#get-lix"
|
||||
- name: mindustry
|
||||
title: "Mindustry"
|
||||
description: "A building and tower defence game where you build up an industry and defences against ever larger waves of enemies."
|
||||
download_link: "https://github.com/Anuken/Mindustry/releases"
|
||||
has_console: true
|
||||
console_output_coloring: "Terminal"
|
||||
console_initial_command: "status"
|
||||
console_help_link: "https://mindustrygame.github.io/wiki/servers/#dedicated-server-commands"
|
||||
console_example_commands:
|
||||
- ["status", "Display server status"]
|
||||
- ["runwave", "Trigger the next wave"]
|
||||
- ["kick <name>", "Kick a person by name"]
|
||||
- name: minetest
|
||||
title: "Minetest (Blockbomber)"
|
||||
description: "The classic Bomberman game in 3D as a mod for Minetest"
|
||||
download_link: "https://www.minetest.net/downloads/"
|
||||
- name: odamex
|
||||
title: "Odamex"
|
||||
description: "Multiplayer-focused DOOM engine that allows deathmatch, coop, and capture the flag mode. Here we are using the Freedom assets so you don't need a copy of the original game to play."
|
||||
download_link: "https://odamex.net/"
|
||||
- name: openhv
|
||||
title: "OpenHV"
|
||||
description: "Real-time strategy game where you mine resources and build units to attack and defend."
|
||||
download_link: "https://github.com/OpenHV/OpenHV/releases"
|
||||
- name: openspades
|
||||
title: "OpenSpades"
|
||||
description: "Mix between a first person shooter and Minecraft. Build defence structures, dig many tunnels or go on the offensive."
|
||||
warning: "uses potentially non-open assets. Fix is <a href=\"help_openspades.html#nonfreeassets\"> here</a>."
|
||||
download_link: "https://github.com/yvt/openspades/releases"
|
||||
- name: shatteredparadise
|
||||
title: "Shattered Paradise"
|
||||
description: "Real-time strategy game where you mine resources and build units to attack and defend."
|
||||
download_link: "https://github.com/ABrandau/Shattered-Paradise-SDK/releases"
|
||||
- name: opensoldat
|
||||
title: "OpenSoldat"
|
||||
description: "Fast-paced 2D side-scrolling shooter game where you have a big gun and a jetpack."
|
||||
download_link: "https://github.com/opensoldat/opensoldat/releases/"
|
||||
- name: supertuxkart
|
||||
title: "SuperTuxKart"
|
||||
description: "Kart racing game where you can use the various power-ups to give yourself a boost of hinder your opponents."
|
||||
download_link: "https://supertuxkart.net/Download"
|
||||
- name: supertuxparty
|
||||
title: "Super Tux Party"
|
||||
description: "Turn-based party game where you challenge other player in real-time mini games."
|
||||
download_link: "https://supertux.party/download/latest/"
|
||||
- name: teeworlds
|
||||
title: "Teeworlds"
|
||||
description: "Fast-paced 2D side-scrolling shooter game where you have a big gun and a grappling hook."
|
||||
download_link: "https://www.teeworlds.com/?page=downloads"
|
||||
has_console: true
|
||||
console_output_coloring: "Terminal"
|
||||
console_initial_command: "status"
|
||||
console_help_link: "https://www.teeworlds.com/?page=docs&wiki=server_commands"
|
||||
console_example_commands:
|
||||
- ["status", "Display server status"]
|
||||
- ["change_map <mapname>", "Switch to <mapname>"]
|
||||
- ["kick <id>", "Kick a person by id"]
|
||||
- name: ufoai
|
||||
title: "UFO: Alien Invasion"
|
||||
description: "Squad-based turn-based tactical strategy game in the tradition of the old X-COM PC games"
|
||||
download_link: "https://ufoai.org/wiki/Download"
|
||||
- name: unvanquished
|
||||
title: "Unvanquished"
|
||||
description: "First-person shooter of aliens vs humans. There are several classes and it's possible to build structures."
|
||||
download_link: "https://unvanquished.net/download/"
|
||||
has_console: true
|
||||
console_output_coloring: "Daemoned"
|
||||
console_initial_command: "/status"
|
||||
console_help_link: "https://wiki.unvanquished.net/wiki/Server/Running#Commands"
|
||||
console_example_commands:
|
||||
- ["/listplayers", "List current players in-game"]
|
||||
- ["/kick <name>", "Kick the player"]
|
||||
- ["/nextmap", "Go to the next map in the rotation"]
|
||||
- name: xonotic
|
||||
title: "Xonotic"
|
||||
description: "First-person shooter where players compete in a 3D world. It features Battle Royale mode."
|
||||
download_link: "https://xonotic.org/download/"
|
||||
has_console: true
|
||||
console_output_coloring: "Daemoned"
|
||||
console_initial_command: "who"
|
||||
console_help_link: "https://gitlab.com/xonotic/xonotic/-/wikis/Basic-server-configuration"
|
||||
console_example_commands:
|
||||
- ["who", "List current players in-game"]
|
||||
- ["kick <name>", "Kick the player"]
|
||||
- ["gotomap <name>", "Go to the specified map"]
|
|
@ -0,0 +1,29 @@
|
|||
<h4>{{ event.date | date: "%A %d %B %Y, %H:%M %Z" }}</h4>
|
||||
<script>
|
||||
var event_year = {{ event.date | date: "%Y" }};
|
||||
var event_month = {{ event.date | date: "%M" }};
|
||||
var event_day = {{ event.date | date: "%M" }};
|
||||
var d = new Date(Date.UTC(event_year, event_month, event_day, {{ event.date | date: "%H" }}, {{ event.date | date: "%M" }}));
|
||||
document.writeln("<p>(Local time: "+d.toTimeString()+")</p>")
|
||||
</script>
|
||||
{% if event.intro %}
|
||||
<p>{{ event.intro }}</p>
|
||||
{% endif %}
|
||||
<ul>
|
||||
{% for game in event.games %}
|
||||
{% assign time = game.time | split: ":"%}
|
||||
{% if game.time %}
|
||||
<li>{{ game.time }}UTC {{ game.title }}{%if game.tournament %} <a href="tournament.html" class="game-tournament">Tournament</a>{% endif %}<script>d=new Date(Date.UTC(event_year, event_month, event_day, {{ time | slice: 0 }}, {{ time | slice: 1 }}));document.writeln(" ("+ Intl.DateTimeFormat(undefined, {hour: '2-digit', minute: '2-digit', timeZoneName: 'short'}).format(d) + ")")</script></li>
|
||||
{% else %}
|
||||
<li>{{ game.title }}{%if game.tournament %} <a href="tournament.html" class="game-tournament">Tournament</a>{% endif %}</li>
|
||||
{% endif %}
|
||||
{% if game.extras %}
|
||||
<ul>
|
||||
{% for extra in game.extras %}
|
||||
<li>{{ extra }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{{ event.content }}
|
|
@ -0,0 +1,27 @@
|
|||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="assets/img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by {{ site.content.hosted_by_name }}</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
{% if layout.nav_pill %}
|
||||
{% assign nav_pill = layout.nav_pill %}
|
||||
{% else %}
|
||||
{% assign nav_pill = page.nav_pill %}
|
||||
{% endif %}
|
||||
{% case nav_pill %}
|
||||
{% when "tournament", "schedule", "help", "admin" %}
|
||||
{% assign home = false %}
|
||||
{% else %}
|
||||
{% assign home = true %}
|
||||
{% endcase %}
|
||||
<li class="nav-item"><a href="index.html" class="nav-link {% if home %}active{% endif %}" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link {% if nav_pill == "tournament" %}active{% endif %}">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link {% if nav_pill == "schedule" %}active{% endif %}">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link {% if nav_pill == "help" %}active{% endif %}">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link {% if nav_pill == "admin" %}active{% endif %}">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>onFOSS-LAN</title>
|
||||
<link rel="stylesheet" href="assets/css/main.css">
|
||||
<link rel="stylesheet" href="assets/css/serverstats.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
{% include nav.html %}
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{{ content }}
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
{% if site.content.offline %}
|
||||
{% include offline.html %}
|
||||
{% else %}
|
||||
{% include online.html %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
layout: default
|
||||
nav_pill: help
|
||||
---
|
||||
<link rel="stylesheet" href="assets/css/help.css">
|
||||
{% assign game = site.data.games | where_exp: "item", "item.name == page.game" | first %}
|
||||
<h1>{{ game.title }}</h1>
|
||||
<p>{{ game.description }}</p>
|
||||
<img src="assets/img/{{ game.name }}.png" alt="Screenshot of {{ game.title }}">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="{{ game.download_link }}">DOWNLOAD</a></div>
|
||||
{{ content }}
|
||||
<p></p>
|
|
@ -0,0 +1,71 @@
|
|||
// Custom style matching https://onfoss.libregaming.org/
|
||||
|
||||
//$primary: darkorange;
|
||||
//$secondary: red;
|
||||
//$body-bg: black;
|
||||
//$body-color: orange;
|
||||
//$warning: yellow;
|
||||
//$font-family-base: Ubuntu Mono, monospace;
|
||||
//$link-color: #4FBAD5;
|
||||
//$dark: darkorange;
|
||||
//$nav-pills-link-active-color: darkblue;
|
||||
//$nav-pills-link-active-bg: darkorange;
|
||||
|
||||
|
||||
// If you want to provide the Ubuntu font, place those font files in assets/css/font
|
||||
|
||||
///* ubuntu-mono-regular - latin */
|
||||
//@font-face {
|
||||
//font-family: 'Ubuntu Mono';
|
||||
//font-style: normal;
|
||||
//font-weight: 400;
|
||||
//src: url('font/ubuntu-mono-v14-latin-regular.eot'); /* IE9 Compat Modes */
|
||||
//src: local(''),
|
||||
//url('font/ubuntu-mono-v14-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||
//url('font/ubuntu-mono-v14-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
|
||||
//url('font/ubuntu-mono-v14-latin-regular.woff') format('woff'), /* Modern Browsers */
|
||||
//url('font/ubuntu-mono-v14-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||
//url('font/ubuntu-mono-v14-latin-regular.svg#UbuntuMono') format('svg'); /* Legacy iOS */
|
||||
//}
|
||||
|
||||
///* ubuntu-mono-italic - latin */
|
||||
//@font-face {
|
||||
//font-family: 'Ubuntu Mono';
|
||||
//font-style: italic;
|
||||
//font-weight: 400;
|
||||
//src: url('font/ubuntu-mono-v14-latin-italic.eot'); /* IE9 Compat Modes */
|
||||
//src: local(''),
|
||||
//url('font/ubuntu-mono-v14-latin-italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||
//url('font/ubuntu-mono-v14-latin-italic.woff2') format('woff2'), /* Super Modern Browsers */
|
||||
//url('font/ubuntu-mono-v14-latin-italic.woff') format('woff'), /* Modern Browsers */
|
||||
//url('font/ubuntu-mono-v14-latin-italic.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||
//url('font/ubuntu-mono-v14-latin-italic.svg#UbuntuMono') format('svg'); /* Legacy iOS */
|
||||
//}
|
||||
|
||||
///* ubuntu-mono-700 - latin */
|
||||
//@font-face {
|
||||
//font-family: 'Ubuntu Mono';
|
||||
//font-style: normal;
|
||||
//font-weight: 700;
|
||||
//src: url('font/ubuntu-mono-v14-latin-700.eot'); /* IE9 Compat Modes */
|
||||
//src: local(''),
|
||||
//url('font/ubuntu-mono-v14-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||
//url('font/ubuntu-mono-v14-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
|
||||
//url('font/ubuntu-mono-v14-latin-700.woff') format('woff'), /* Modern Browsers */
|
||||
//url('font/ubuntu-mono-v14-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||
//url('font/ubuntu-mono-v14-latin-700.svg#UbuntuMono') format('svg'); /* Legacy iOS */
|
||||
//}
|
||||
|
||||
///* ubuntu-mono-700italic - latin */
|
||||
//@font-face {
|
||||
//font-family: 'Ubuntu Mono';
|
||||
//font-style: italic;
|
||||
//font-weight: 700;
|
||||
//src: url('font/ubuntu-mono-v14-latin-700italic.eot'); /* IE9 Compat Modes */
|
||||
//src: local(''),
|
||||
//url('font/ubuntu-mono-v14-latin-700italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||
//url('font/ubuntu-mono-v14-latin-700italic.woff2') format('woff2'), /* Super Modern Browsers */
|
||||
//url('font/ubuntu-mono-v14-latin-700italic.woff') format('woff'), /* Modern Browsers */
|
||||
//url('font/ubuntu-mono-v14-latin-700italic.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||
//url('font/ubuntu-mono-v14-latin-700italic.svg#UbuntuMono') format('svg'); /* Legacy iOS */
|
||||
//}
|
|
@ -1,45 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/terminal.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="js/terminalcolors.js"></script>
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
---
|
||||
layout: default
|
||||
nav_pill: admin
|
||||
---
|
||||
<link rel="stylesheet" href="assets/css/terminal.css">
|
||||
<script src="assets/js/terminalcolors.js"></script>
|
||||
<script src="js/consoles.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link active">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8" id="console-div">
|
||||
<div id="console-div">
|
||||
<noscript>The admin console needs JavaScript to function since it uses web sockets to connect to the controller processes</noscript>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
---
|
||||
@import "base";
|
||||
@import "bootstrap/bootstrap";
|
||||
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 87 KiB |
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 207 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 155 KiB After Width: | Height: | Size: 155 KiB |
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 155 KiB After Width: | Height: | Size: 155 KiB |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 180 KiB After Width: | Height: | Size: 180 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 105 KiB |
After Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 155 KiB |
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 190 KiB |
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 134 KiB |
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 163 KiB |
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 126 KiB |
Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 175 KiB |
|
@ -12,7 +12,7 @@
|
|||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
// Shell command can have control codes. Some of these mean colours.
|
||||
function convertTerminalCodeToHtml(line) {
|
|
@ -1,35 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
---
|
||||
layout: default
|
||||
nav_pill: help
|
||||
---
|
||||
<h1>Help</h1>
|
||||
<h3>Communication</h3>
|
||||
<h4>How to use Mumble</h4>
|
||||
|
@ -48,7 +20,7 @@
|
|||
using the mumble link from the <a href="index.html">Home</a> page.
|
||||
You should be able to connect and see something like this:
|
||||
</p>
|
||||
<img src="img/mumble_interface.png" alt="Screenshot of the Mumble interface">
|
||||
<img src="assets/img/mumble_interface.png" alt="Screenshot of the Mumble interface">
|
||||
<p>
|
||||
By default, you will be place in the Root, but you can double-click
|
||||
on any channel to join. You will most likely want to go to the Lobby,
|
||||
|
@ -72,7 +44,7 @@
|
|||
Element before, click on the Continue button for that. You should
|
||||
be able to connect and see something like this:
|
||||
</p>
|
||||
<img src="img/element_interface.png" alt="Screenshot of the Element interface">
|
||||
<img src="assets/img/element_interface.png" alt="Screenshot of the Element interface">
|
||||
<p>There are usually people here, even outside of the event.</p>
|
||||
<h4>How to use XMPP/Movim</h4>
|
||||
<p>
|
||||
|
@ -91,7 +63,7 @@
|
|||
From there, you can start the web-based client at <a href="https://mov.im">mov.im</a>.
|
||||
After logging in, choose "chats" and then click on the big plus symbol.
|
||||
</p>
|
||||
<img src="img/movim_interface.png" alt="Screenshot of the Mov.im interface">
|
||||
<img src="assets/img/movim_interface.png" alt="Screenshot of the Mov.im interface">
|
||||
<p>
|
||||
In the new screen that pops up, you will find "Join a chatroom"
|
||||
and then "Join a custom chatroom". Paste the room name from
|
||||
|
@ -99,34 +71,13 @@
|
|||
you want in the Name field. That's only visible for you as the name
|
||||
of this room.
|
||||
</p>
|
||||
<img src="img/movim_interface2.png" alt="Screenshot of the Mov.im interface">
|
||||
<img src="assets/img/movim_interface2.png" alt="Screenshot of the Mov.im interface">
|
||||
<p>There are usually people here, even outside of the event.</p>
|
||||
<h3>Games</h3>
|
||||
<p>Each game has their own separate help page</p>
|
||||
<ul>
|
||||
<li><a href="help_armagetron.html">Armagetron Advanced</a></li>
|
||||
<li><a href="help_bzflag.html">Bzflag</a></li>
|
||||
<li><a href="help_hedgewars.html">Hedgewars</a></li>
|
||||
<li><a href="help_lix.html">Lix</a></li>
|
||||
<li><a href="help_mindustry.html">Mindustry</a></li>
|
||||
<li><a href="help_openhv.html">OpenHV</a></li>
|
||||
<li><a href="help_openspades.html">OpenSpades</a></li>
|
||||
<li><a href="help_shatteredparadise.html">Shattered Paradise</a></li>
|
||||
<li><a href="help_soldat.html">Soldat</a></li>
|
||||
<li><a href="help_supertuxkart.html">SuperTuxKart</a></li>
|
||||
<li><a href="help_supertuxparty.html">Super Tux Party</a></li>
|
||||
<li><a href="help_teeworlds.html">Teeworlds</a></li>
|
||||
<li><a href="help_ufoai.html">UFO: Alien Invasion</a></li>
|
||||
<li><a href="help_unvanquished.html">Unvanquished</a></li>
|
||||
<li><a href="help_xonotic.html">Xonotic</a></li>
|
||||
{% assign sorted_games = site.data.games | sort: "title" %}
|
||||
{% for game in sorted_games %}
|
||||
<li><a href="help_{{ game.name }}.html">{{ game.title }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,44 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>Armagetron Advanced</h1>
|
||||
<p>
|
||||
Drive your lightcycle and leave a lightwall behind you. Survive as
|
||||
long as you can and try to make other run into walls.
|
||||
</p>
|
||||
<img src="img/armagetron.png" alt="Screenshot of Armagetron Advanced">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="http://www.armagetronad.org/downloads.php">DOWNLOAD</a></div>
|
||||
---
|
||||
layout: help
|
||||
game: armagetron
|
||||
---
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
<li>Press the down arrow key to brake</li>
|
||||
|
@ -50,17 +13,7 @@
|
|||
Then go to Multiplayer and then to Custom Connect.
|
||||
</p>
|
||||
<p>
|
||||
Enter DOMAINNAME in the Address field and keep the port number at 4534.
|
||||
Enter {{ site.content.domain_name }} in the Address field and keep the port number at 4534.
|
||||
Navigate down to Connect to Server to join.
|
||||
</p>
|
||||
<p>You should now be connected.</p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,41 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>Bzflag</h1>
|
||||
<p>Drive around in a tank that can jump, trying to shoot your opponents while dodging their bullets.</p>
|
||||
<img src="img/bzflag.png" alt="Screenshot of Bzflag">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://www.bzflag.org/downloads/">DOWNLOAD</a></div>
|
||||
---
|
||||
layout: help
|
||||
game: bzflag
|
||||
---
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
<li>Jump using the <Tab> key</li>
|
||||
|
@ -45,18 +11,8 @@
|
|||
<h2>Connecting</h2>
|
||||
<p>Use the arrow keys to nagivate to Join Game and press <Enter>.</p>
|
||||
<p>
|
||||
Move down to Server and type DOMAINNAME and keep the port number at 5154.
|
||||
Move down to Server and type {{ site.content.domain_name }} and keep the port number at 5154.
|
||||
You can also set your Callsign here. This is how other players will see
|
||||
your name. Then move up to Connect and press <Enter>.</p>
|
||||
<img src="img/help_bzflag.png" alt="Server join screen for Bzflag" class="img-fluid">
|
||||
<img src="assets/img/help_bzflag.png" alt="Server join screen for Bzflag" class="img-fluid">
|
||||
<p>You should now be connected.</p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,41 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>Hedgewars</h1>
|
||||
<p>Worms-like game where your team of hedgehogs needs to destroy the other teams using the ludicrous arsenal at their disposal.</p>
|
||||
<img src="img/hedgewars.png" alt="Screenshot of Hedgewars">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://www.hedgewars.org/download.html">DOWNLOAD</a></div>
|
||||
---
|
||||
layout: help
|
||||
game: hedgewars
|
||||
---
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
<li>Use the right mouse button to open the weapons menu.</li>
|
||||
|
@ -60,19 +26,9 @@
|
|||
</p>
|
||||
<p>
|
||||
At the bottom, there is a button called "Specify addres".
|
||||
Fill in DOMAINNAME for the host and leave the port number at 46631.
|
||||
Fill in {{ site.content.domain_name }} for the host and leave the port number at 46631.
|
||||
</p>
|
||||
<img src="img/help_hedgewars.png" alt="Connection settings for Hedgewars" class="img-fluid">
|
||||
<img src="assets/img/help_hedgewars.png" alt="Connection settings for Hedgewars" class="img-fluid">
|
||||
<p>
|
||||
You should now see a list of rooms. There should be one room you can join.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,52 +1,17 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>Lix</h1>
|
||||
<p>Lemmings-like game where you need to guide your little people to safety despite their best efforts of wandering into things that will kill them.</p>
|
||||
<img src="img/lix.png" alt="Screenshot of Lix">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://github.com/SimonN/LixD#get-lix">DOWNLOAD</a></div>
|
||||
---
|
||||
layout: help
|
||||
game: lix
|
||||
---
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
<li>You can only control the Lix that are the colour you chose</li>
|
||||
<li>You only get points for Lix going into the exits that are in your colour</li>
|
||||
<li>You also get points if other coloured Lix go into your exits</li>
|
||||
<li>The baseball bat is a great way to get rid of enemy blockers</li>
|
||||
</ul>
|
||||
<h2>Connecting</h2>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<p>Click on "Options". Then under the "General" tab, you can input your player name. Click on "Okay" to confirm.</p>
|
||||
<p>Click on "Network Game".</p>
|
||||
<p>Under address, fill out {{ site.contents.domain_name }} and keep the port set to 22934. Then click on "Okay" to connect.</p>
|
||||
<p>You should see a room on the upper right. Click on that to join.</p>
|
||||
<p>Choose your colour and then click "Okay"</p>
|
||||
|
|
|
@ -1,41 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>Mindustry</h1>
|
||||
<p>A building and tower defence game where you build up an industry and defences against ever larger waves of enemies.</p>
|
||||
<img src="img/mindustry.png" alt="Screenshot of Mindustry">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://github.com/Anuken/Mindustry/releases">DOWNLOAD</a></div>
|
||||
---
|
||||
layout: help
|
||||
game: mindustry
|
||||
---
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
<li>
|
||||
|
@ -51,16 +17,6 @@
|
|||
From the main menu choose "Play" and then "Join
|
||||
Game". You will be able to set you in-game name here.
|
||||
</p>
|
||||
<p>To join the server, click on "Add Server" and type in DOMAINNAME. When you press Ok, it will be added under "Remote Servers".</p>
|
||||
<img src="img/help_mindustry.png" alt="The join screen in Mindustry with the server added" class="img-fluid">
|
||||
<p>To join the server, click on "Add Server" and type in {{ site.content.domain_name }}. When you press Ok, it will be added under "Remote Servers".</p>
|
||||
<img src="assets/img/help_mindustry.png" alt="The join screen in Mindustry with the server added" class="img-fluid">
|
||||
<p>You can then click on the server name to join.</p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
layout: help
|
||||
game: minetest
|
||||
---
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
<li>Movement: A, S, W, D</li>
|
||||
<li>Drop bomb: Left Shift (sneak)(</li>
|
||||
<li>Throw a bomb that you are standing in: Space (jump) (if player has Spring)</li>
|
||||
<li>Punch bomb: Left mouse button (punch) (with Fist)</li>
|
||||
</ul>
|
||||
<h2>Connecting</h2>
|
||||
<p>
|
||||
Under address fill in {{ site.content.domain_name }} and keep the port at
|
||||
30000. Click on Register to set your in-game name. You can leave the password blank
|
||||
since this server will disappear after the event anyway.
|
||||
</p>
|
||||
<img src="assets/img/help_minetest.png" alt="The register screen in the Minetest client" class="img-fluid">
|
||||
<p>You will be placed in the lobby with the other players</p>
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
layout: help
|
||||
game: odamex
|
||||
download_link: https://odamex.net/
|
||||
---
|
||||
<p>An AppImage for Linux was automatically generated: {% if site.content.offline %}Odamex-x86_64.AppImage (only available when game servers are online){% else %}<a href="assets/Odamex-x86_64.AppImage">Odamex-x86_64.AppImage</a>{% endif %}</p>
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
<li>Use <SPACE> to jump</li>
|
||||
<li>Use E to open doors or to respawn if dead</li>
|
||||
</ul>
|
||||
<h2>Connecting</h2>
|
||||
<p>While Odamex does have a launcher, if requires that you have DOOM assets available locally. It won't launch the game without it, which means you either need the original game data of open assets such as Freedoom.</p>
|
||||
<p>However, if you connect to the game server directly, odamex will download the required assets automatically from the server.</p>
|
||||
<p>From the terminal, type:</p>
|
||||
<p><tt>odamex -connect {{ site.content.domain_name }} +set cl_name "YourName"</tt></p>
|
||||
<p>Of course, substitute "YourName" with the in-game name you want.</p>
|
|
@ -1,41 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>OpenHV</h1>
|
||||
<p>Real-time strategy game where you mine resources and build units to attack and defend.</p>
|
||||
<img src="img/openhv.png" alt="Screenshot of OpenHV">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://github.com/OpenHV/OpenHV/releases">DOWNLOAD</a></div>
|
||||
---
|
||||
layout: help
|
||||
game: openhv
|
||||
---
|
||||
<p>You will have to expand "Assets" to see the download links.</p>
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
|
@ -57,18 +23,8 @@
|
|||
</p>
|
||||
<p>
|
||||
From the main menu, click on "Multiplayer" and then click
|
||||
on "Direct IP". Fill in DOMAINNAME and keep the port at
|
||||
on "Direct IP". Fill in {{ site.content.domain_name }} and keep the port at
|
||||
1234. Then click on "Join"
|
||||
</p>
|
||||
<img src="img/help_openhv.png" alt="The join screen in OpenHV" class="img-fluid">
|
||||
<img src="assets/img/help_openhv.png" alt="The join screen in OpenHV" class="img-fluid">
|
||||
<p>You will be placed in the lobby with the other players</p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
layout: help
|
||||
game: opensoldat
|
||||
---
|
||||
<p>The game does not have a GUI yet. You need to start it from the terminal/command prompt. When you do so, it will create a configs directory with a client.cfg file. You can add your settings to that.</p>
|
||||
<p>The AppImage for Linux creates the config file in <tt>~/.config/share/Soldat/Soldat</tt> instead.</p>
|
||||
<p>Things you might like to set:</p>
|
||||
<ul>
|
||||
<li><tt>cl_player_name YourNameGoesHere</tt></li>
|
||||
<li><tt>r_fullscreen 1</tt></li>
|
||||
</ul>
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
<li>Use the right mouse button to use your jetpack.</li>
|
||||
<li>Press Q to switch to your secondary weapon and E to throw grenades.</li>
|
||||
</ul>
|
||||
<h2>Connecting</h2>
|
||||
<p>Start Soldat by typing:</p>
|
||||
<p><tt>./soldat -join {{ site.content.domain_name }}</tt></p>
|
||||
<p>You should now be connected. If it doesn't work. Try to connect by IP address instead of domain name.</p>
|
|
@ -1,41 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>OpenSpades</h1>
|
||||
<p>Mix between a first person shooter and Minecraft. Build defence structures, dig many tunnels or go on the offensive.</p>
|
||||
<img src="img/openspades.png" alt="Screenshot of OpenSpades">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://github.com/yvt/openspades/releases">DOWNLOAD</a></div>
|
||||
---
|
||||
layout: help
|
||||
game: openspades
|
||||
---
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
<li>
|
||||
|
@ -53,6 +19,25 @@
|
|||
the map go away again.
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="nonfreeassets">Non-free assets</h2>
|
||||
<p>
|
||||
OpenSpades contains non-free assets that were copied from the original
|
||||
Ace of Spades games. The creators of OpenSpades were unabled to contact
|
||||
the authors, so these assets were never released under an open licence.
|
||||
</p>
|
||||
<p>
|
||||
Fortunately, there is a drop-in replacement for these assets available.
|
||||
All models have been recreated under a CC0 licence and the sound effects
|
||||
have been replaced by mostly CC0 equivalents with a few exceptions that
|
||||
are CC-BY.
|
||||
</p>
|
||||
<h3>Installation</h3>
|
||||
<ul>
|
||||
<li>Download the libre assets: <a href="https://github.com/DeathByDenim/openspades-free-pak/releases/download/latest/pak001-Free.pak">pak001-Free.pak</a></li>
|
||||
<li>Find the location of pak000-Nonfree.pak for your OpenSpades installation. For example <tt>/usr/share/openspades/Resources/</tt></li>
|
||||
<li>Copy the downloaded pak001-Free.pak to the same location.</li>
|
||||
<li>Optionally, delete pak000-Nonfree.pak. It it no longer needed because pak001-Free.pak will overrule all of the content in pak000-Nonfree.pak.</li>
|
||||
</ul>
|
||||
<h2>Connecting</h2>
|
||||
<p>
|
||||
When you start the game you will immediately enter the server
|
||||
|
@ -61,18 +46,8 @@
|
|||
to return to the server browser.
|
||||
</p>
|
||||
<p>
|
||||
To connect to the server, type DOMAINNAME in the input field at the
|
||||
To connect to the server, type {{ site.content.domain_name }} in the input field at the
|
||||
top and click on the "Connect" button to the right.
|
||||
</p>
|
||||
<img src="img/help_openspades.png" alt="The join screen in OpenSpades" class="img-fluid">
|
||||
<img src="assets/img/help_openspades.png" alt="The join screen in OpenSpades" class="img-fluid">
|
||||
<p></p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,41 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>Shattered Paradise</h1>
|
||||
<p>Real-time strategy game where you mine resources and build units to attack and defend.</p>
|
||||
<img src="img/shatteredparadise.png" alt="Screenshot of Shattered Paradise">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://github.com/ABrandau/Shattered-Paradise-SDK/releases">DOWNLOAD</a></div>
|
||||
---
|
||||
layout: help
|
||||
game: shatteredparadise
|
||||
---
|
||||
<p>You will have to expand "Assets" to see the download links.</p>
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
|
@ -57,18 +23,8 @@
|
|||
</p>
|
||||
<p>
|
||||
From the main menu, click on "Multiplayer" and then click
|
||||
on "Direct IP". Fill in DOMAINNAME and set the port at
|
||||
on "Direct IP". Fill in {{ site.content.domain_name }} and set the port at
|
||||
12340. The standard port is 1234, but is already taken. Then click on "Join"
|
||||
</p>
|
||||
<img src="img/help_shatteredparadise.png" alt="The join screen in Shattered Paradise" class="img-fluid">
|
||||
<img src="assets/img/help_shatteredparadise.png" alt="The join screen in Shattered Paradise" class="img-fluid">
|
||||
<p>You will be placed in the lobby with the other players</p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,64 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>Soldat</h1>
|
||||
<p>Fast-paced 2D side-scrolling shooter game where you have a big gun and a jetpack.</p>
|
||||
<img src="img/soldat.png" alt="Screenshot of Soldat">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://github.com/opensoldat/opensoldat/releases/">DOWNLOAD</a></div>
|
||||
<p>The game does not have a GUI yet. You need to start it from the terminal/command prompt. When you do so, it will create a configs directory with a client.cfg file. You can add your settings to that.</p>
|
||||
<p>The AppImage for Linux creates the config file in <tt>~/.config/share/Soldat/Soldat</tt> instead.</p>
|
||||
<p>Things you might like to set:</p>
|
||||
<ul>
|
||||
<li><tt>cl_player_name YourNameGoesHere</tt></li>
|
||||
<li><tt>r_fullscreen 1</tt></li>
|
||||
</ul>
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
<li>Use the right mouse button to use your jetpack.</li>
|
||||
<li>Press Q to switch to your secondary weapon and E to throw grenades.</li>
|
||||
</ul>
|
||||
<h2>Connecting</h2>
|
||||
<p>Start Soldat by typing:</p>
|
||||
<p><tt>./soldat -join DOMAINNAME</tt></p>
|
||||
<p>You should now be connected. If it doesn't work. Try to connect by IP address instead of domain name.</p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,44 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>SuperTuxKart</h1>
|
||||
<p>
|
||||
Kart racing game where you can use the various power-ups to give
|
||||
yourself a boost of hinder your opponents.
|
||||
</p>
|
||||
<img src="img/supertuxkart.png" alt="Screenshot of SuperTuxKart">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://supertuxkart.net/Download">DOWNLOAD</a></div>
|
||||
---
|
||||
layout: help
|
||||
game: supertuxkart
|
||||
---
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
<li>Use the arrow keys to accelerate, brake, and steer.</li>
|
||||
|
@ -57,20 +20,9 @@
|
|||
</p>
|
||||
<p>
|
||||
To connect to out server, click on "Enter server address".
|
||||
Then type in DOMAINNAME and click on "OK".
|
||||
Then type in {{ site.content.domain_name }} and click on "OK".
|
||||
</p>
|
||||
<img src="img/help_supertuxkart.png" alt="Entering the server address" class="img-fluid">
|
||||
<img src="assets/img/help_supertuxkart.png" alt="Entering the server address" class="img-fluid">
|
||||
<p>
|
||||
You will then be placed in the lobby of our game server and ready to go!
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,58 +1,4 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>Super Tux Party</h1>
|
||||
<p>Turn-based party game where you challenge other player in real-time mini games.</p>
|
||||
<img src="img/supertuxparty.png" alt="Screenshot of Super Tux Party">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://supertux.party/download/latest/">DOWNLOAD</a></div>
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
<li>Use the right mouse button to use your jetpack.</li>
|
||||
<li>Press Q to switch to your secondary weapon and E to throw grenades.</li>
|
||||
</ul>
|
||||
<h2>Connecting</h2>
|
||||
<p>SClick on "Play online".</p>
|
||||
<p>Click on the + and type DOMAINNAME and press <Enter>.</p>
|
||||
<p>Click on DOMAINNAME to connect.</p>
|
||||
<p>At the bottom of the screen there is a small text field and a Join Lobby button. This is a randomly generated string that needs to be provided by whoever created the lobby. This will be shared over Matrix or Mumble.</p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
---
|
||||
layout: help
|
||||
game: supertuxparty
|
||||
---
|
||||
|
|
|
@ -1,41 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>Teeworlds</h1>
|
||||
<p>Fast-paced 2D side-scrolling shooter game where you have a big gun and a grappling hook.</p>
|
||||
<img src="img/teeworlds.png" alt="Screenshot of Teeworlds">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://www.teeworlds.com/?page=downloads">DOWNLOAD</a></div>
|
||||
---
|
||||
layout: help
|
||||
game: teeworlds
|
||||
---
|
||||
<p>Click the name of your OS on the left of the most recent version. Extract the file wherever you like and start playing.</p>
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
|
@ -44,18 +10,8 @@
|
|||
</ul>
|
||||
<h2>Connecting</h2>
|
||||
<p>Click on Settings and choose the Player tab. You can fill in your name so we can recognize you when you join the server. The Tee tab will also let you customize your appearance.</p>
|
||||
<img src="img/help_teeworlds_name.png" alt="Teeworlds setting for player name" class="img-fluid">
|
||||
<img src="assets/img/help_teeworlds_name.png" alt="Teeworlds setting for player name" class="img-fluid">
|
||||
<p>To connect to the server, got back to the main menu and click Play.</p>
|
||||
<p>At the bottom of the screen you can fill in the name of the server in the Host address field. Type DOMAINNAME and press <Enter> or click Connect.</p>
|
||||
<img src="img/help_teeworlds_server.png" alt="Joining the Teeworlds server" class="img-fluid">
|
||||
<p>At the bottom of the screen you can fill in the name of the server in the Host address field. Type {{ site.content.domain_name }} and press <Enter> or click Connect.</p>
|
||||
<img src="assets/img/help_teeworlds_server.png" alt="Joining the Teeworlds server" class="img-fluid">
|
||||
<p>You should now be connected.</p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,44 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>UFO: Alien Invasion</h1>
|
||||
<p>Squad-based turn-based tactical strategy game in the tradition of the old X-COM PC games</p>
|
||||
<img src="img/ufoai.png" alt="UFO: Alien Invasion">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://ufoai.org/wiki/Download">DOWNLOAD</a></div>
|
||||
<p>The download page only has binaries for Linux and Windows. We compiled the macOS version ourselves. To download, open the Terminal and type the following:</p>
|
||||
---
|
||||
layout: help
|
||||
game: ufoai
|
||||
---
|
||||
<p>The download page only has binaries for Linux and Windows. We compiled the macOS version ourselves. Download: <a href="https://www.jottacloud.com/s/2277232ff2022034678bafb62b3c9b7ef3a">ufoai-macos.tar.bz2</a></p>
|
||||
<p>Then open the Terminal and type the following:</p>
|
||||
<pre>
|
||||
curl -O https://play.jarno.ca/ufoai-macos.tar.bz2
|
||||
tar xf ufoai-macos.tar.bz2
|
||||
cd dist
|
||||
./ufo
|
||||
|
@ -52,18 +18,8 @@ cd dist
|
|||
</ul>
|
||||
<h2>Connecting</h2>
|
||||
<p>Click on Multiplayer. You'll need to create a team before you can do anything, so click on Team and then Generate New Team and choose the type you want.</p>
|
||||
<img src="img/help_ufoai.png" alt="Generating a new team" class="img-fluid">
|
||||
<img src="assets/img/help_ufoai.png" alt="Generating a new team" class="img-fluid">
|
||||
<p>Click no the done button at the very bottom right if you are happy with it. You'll return to the multiplayer menu</p>
|
||||
<p>Click on Join and type DOMAINNAME in the field for Connect to IP and click Connect.</p>
|
||||
<img src="img/help_ufoai_connect.png" alt="Joining the UFO:AI server" class="img-fluid">
|
||||
<p>Click on Join and type {{ site.content.domain_name }} in the field for Connect to IP and click Connect.</p>
|
||||
<img src="assets/img/help_ufoai_connect.png" alt="Joining the UFO:AI server" class="img-fluid">
|
||||
<p>You'll see a summary of the server. Click on Connect to connect.</p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,41 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>Unvanquished</h1>
|
||||
<p>First-person shooter of aliens vs humans. There are several classes and it's possible to build structures.</p>
|
||||
<img src="img/unvanquished.png" alt="Screenshot of Unvanquished">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://unvanquished.net/download/">DOWNLOAD</a></div>
|
||||
---
|
||||
layout: help
|
||||
game: unvanquished
|
||||
---
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
<li>
|
||||
|
@ -50,15 +16,5 @@
|
|||
</ul>
|
||||
<h2>Connecting</h2>
|
||||
<p>Set your in-game name by clicking on "Player" under "Options".</p>
|
||||
<p>To connect to the server, press ~ to open the console and type "connect DOMAINNAME"</p>
|
||||
<img src="img/help_unvanquished.png" alt="In-game terminal connecting to the game server" class="img-fluid">
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<p>To connect to the server, press ~ to open the console and type "connect {{ site.content.domain_name }}"</p>
|
||||
<img src="assets/img/help_unvanquished.png" alt="In-game terminal connecting to the game server" class="img-fluid">
|
||||
|
|
|
@ -1,41 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="stylesheet" href="css/help.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link active">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>Xonotic</h1>
|
||||
<p>First-person shooter where players compete in a 3D world. It features Battle Royale mode.</p>
|
||||
<img src="img/xonotic.png" alt="Screenshot of Xonotic">
|
||||
<h2>Getting the game</h2>
|
||||
<div class="download"><a href="https://xonotic.org/download/">DOWNLOAD</a></div>
|
||||
---
|
||||
layout: help
|
||||
game: xonotic
|
||||
---
|
||||
<p>Note that the download has the executable for all OS inside of it.</p>
|
||||
<h2>Tips</h2>
|
||||
<ul>
|
||||
|
@ -56,17 +22,7 @@
|
|||
</p>
|
||||
<p>
|
||||
To connect to the game server, click on the "Servers"
|
||||
button. At the bottom of the screen you can fill in DOMAINNAME in
|
||||
button. At the bottom of the screen you can fill in {{ site.content.domain_name }} in
|
||||
the Address field. Then press Join.
|
||||
</p>
|
||||
<img src="img/help_xonotic.png" alt="Server name input in Xonotic" class="img-fluid">
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<img src="assets/img/help_xonotic.png" alt="Server name input in Xonotic" class="img-fluid">
|
||||
|
|
|
@ -1,39 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>onFOSS-LAN</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link active" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
---
|
||||
layout: default
|
||||
nav_pill: home
|
||||
---
|
||||
<h1>About onFOSS-LAN</h1>
|
||||
<p>
|
||||
onFOSS-LAN is a online, "Free (as Freedom) and Open Source" LAN-Party
|
||||
hosted by HOSTEDBYNAME. The goal is to get people together, enjoying the
|
||||
hosted by {{ site.content.hosted_by_name }}. The goal is to get people together, enjoying the
|
||||
art of computer games and having a great time in these days. The FOSS
|
||||
community is a place of being open minded and acceptance to all
|
||||
different kinds of people with the focus of fully transparent systems
|
||||
|
@ -43,119 +15,44 @@
|
|||
</p>
|
||||
<p>This concept was originally started at <a href="https://onfoss.hribhrib.at/">hribhrib.at</a></p>
|
||||
<h1>Next event</h1>
|
||||
<p>Coming soon!</p>
|
||||
<h1>Communication</h1>
|
||||
{% assign sitetime = site.time | date: "%FT%T" %}
|
||||
{% assign upcoming = site.data.events | where_exp: "item", "item.date >= sitetime" | last %}
|
||||
{% if upcoming %}
|
||||
<h4>{{ upcoming.date | date: "%A %e %B %Y, %R" }} UTC</h4>
|
||||
<script>var zone = new Date().toLocaleTimeString('en-ca',{timeZoneName:'short'}).split(' ')[2];d=new Date("{{ upcoming.date | date_to_rfc822 }}");document.writeln("<p>(Local time: "+d.toTimeString()+")</p>")</script>
|
||||
<p>See <a href="schedule.html">schedule</a> for more information.</p>
|
||||
{% else %}
|
||||
<p>No next event has been scheduled yet.</p>
|
||||
{% endif %}
|
||||
<h1 id="communication">Communication</h1>
|
||||
<p>We use Mumble voice chat on <a href="mumble://hribhrib.at">mumble://hribhrib.at</a>. It is the main mode of cummunication during the event.</p>
|
||||
<p>Matrix chat on <a href="https://matrix.to/#/#xmpp_onfoss_conference.hribhrib.at:matrix.org">#xmpp_onfoss_conference.hribhrib.at:matrix.org</a></p>
|
||||
<p>XMPP chat on <a href="xmpp:onfoss@conference.hribhrib.at?join">onfoss@conference.hribhrib.at</a></p>
|
||||
<p>We also have regular text chat for any time use. You can choose the protocol you like and the program you like, they all point to the same thing in the end</p>
|
||||
<ul>
|
||||
<li>Matrix chat on <a href="https://matrix.to/#/#irc_#onfoss:matrix.f-hub.org">#irc_#onfoss:matrix.f-hub.org</a></li>
|
||||
<li>XMPP chat on <a href="https://xmpp.f-hub.org/##onfoss@irc.f-hub.org?join">#onfoss@irc.freegamedev.net</a></li>
|
||||
<li>IRC chat on <a href="ircs://irc.freegamedev.net:6697/#onfoss">#onfoss@irc.freegamedev.net</a></li>
|
||||
</ul>
|
||||
<p>See the <a href="help.html">help page</a> for more information on how to connect to these services.</p>
|
||||
<h1>Games</h1>
|
||||
<p>There are a few game servers running. To connect, simply start the game and connect to this domain. See also the <a href="help.html">Help</a> section for more information.</p>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
{% assign sorted_games = site.data.games | sort: "title" %}
|
||||
{% for game in sorted_games %}
|
||||
<tr>
|
||||
<td><a href="help_armagetron.html"><img src="img/armagetron.png" height="64" alt="Tiny screenshot of Armagetron Advanced"></a></td>
|
||||
<td>Armagetron Advanced</td>
|
||||
<td>Drive your lightcycle and leave a lightwall behind you. Survive as
|
||||
long as you can and try to make other run into walls.</td>
|
||||
<td><a href="help_armagetron.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_bzflag.html"><img src="img/bzflag.png" height="64" alt="Tiny screenshot of Bzflag"></a></td>
|
||||
<td>Bzflag</td>
|
||||
<td>Drive around in a tank that can jump, trying to shoot your opponents while dodging their bullets.</td>
|
||||
<td><a href="help_bzflag.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_hedgewars.html"><img src="img/hedgewars.png" height="64" alt="Tiny screenshot of Hedgewars"></a></td>
|
||||
<td>Hedgewars</td>
|
||||
<td>Worms-like game where your team of hedgehogs needs to destroy the other teams using the ludicrous arsenal at their disposal.</td>
|
||||
<td><a href="help_hedgewars.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_lix.html"><img src="img/lix.png" height="64" alt="Tiny screenshot of Lix"></a></td>
|
||||
<td>Lix</td>
|
||||
<td>Lemmings-like game where you need to guide your little people to safety despite their best efforts of wandering into things that will kill them.</td>
|
||||
<td><a href="help_lix.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_mindustry.html"><img src="img/mindustry.png" height="64" alt="Tiny screenshot of Mindustry"></a></td>
|
||||
<td>Mindustry</td>
|
||||
<td>A building and tower defence game where you build up an industry and defences against ever larger waves of enemies.</td>
|
||||
<td><a href="help_mindustry.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_openhv.html"><img src="img/openhv.png" height="64" alt="Tiny screenshot of OpenHV"></a></td>
|
||||
<td>OpenHV</td>
|
||||
<td>Real-time strategy game where you mine resources and build units to attack and defend.</td>
|
||||
<td><a href="help_openhv.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_openspades.html"><img src="img/openspades.png" height="64" alt="Tiny screenshot of OpenSpades"></a></td>
|
||||
<td>OpenSpades</td>
|
||||
<td>Mix between a first person shooter and Minecraft. Build defence structures, dig many tunnels or go on the offensive.<br><mark>Warning:</mark> uses potentially non-open assets.</td>
|
||||
<td><a href="help_openspades.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_shatteredparadise.html"><img src="img/shatteredparadise.png" height="64" alt="Tiny screenshot of Shattered Paradise"></a></td>
|
||||
<td>Shattered Paradise</td>
|
||||
<td>Real-time strategy game where you mine resources and build units to attack and defend.</td>
|
||||
<td><a href="help_shatteredparadise.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_soldat.html"><img src="img/soldat.png" height="64" alt="Tiny screenshot of Soldat"></a></td>
|
||||
<td>Soldat</td>
|
||||
<td>Fast-paced 2D side-scrolling shooter game where you have a big gun and a jetpack.</td>
|
||||
<td><a href="help_soldat.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_supertuxkart.html"><img src="img/supertuxkart.png" height="64" alt="Tiny screenshot of SuperTuxKart"></a></td>
|
||||
<td>SuperTuxKart</td>
|
||||
<td>Kart racing game where you can use the various power-ups to give yourself a boost of hinder your opponents.</td>
|
||||
<td><a href="help_supertuxkart.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_supertuxparty.html"><img src="img/supertuxparty.png" height="64" alt="Tiny screenshot of Super Tux Party"></a></td>
|
||||
<td>Super Tux Party</td>
|
||||
<td>Turn-based party game where you challenge other player in real-time mini games.</td>
|
||||
<td><a href="help_supertuxparty.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_teeworlds.html"><img src="img/teeworlds.png" height="64" alt="Tiny screenshot of Teeworlds"></a></td>
|
||||
<td>Teeworlds</td>
|
||||
<td>Fast-paced 2D side-scrolling shooter game where you have a big gun and a grappling hook.</td>
|
||||
<td><a href="help_teeworlds.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_ufoai.html"><img src="img/ufoai.png" height="64" alt="Tiny screenshot of UFO: Alien Invasion"></a></td>
|
||||
<td>UFO: Alien Invasion</td>
|
||||
<td>Squad-based turn-based tactical strategy game in the tradition of the old X-COM PC games</td>
|
||||
<td><a href="help_ufoai.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_unvanquished.html"><img src="img/unvanquished.png" height="64" alt="Tiny screenshot of Unvanquished"></a></td>
|
||||
<td>Unvanquished</td>
|
||||
<td>First-person shooter of aliens vs humans. There are several classes and it's possible to build structures.</td>
|
||||
<td><a href="help_unvanquished.html">More info</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="help_xonotic.html"><img src="img/xonotic.png" height="64" alt="Tiny screenshot of Xonotic"></a></td>
|
||||
<td>Xonotic</td>
|
||||
<td>First-person shooter where players compete in a 3D world. It features Battle Royale mode.</td>
|
||||
<td><a href="help_xonotic.html">More info</a></td>
|
||||
<td><a href="help_{{ game.name }}.html"><img src="assets/img/{{ game.name }}.png" height="64" alt="Tiny screenshot of {{ game.title }}"></a></td>
|
||||
<td>{{ game.title }}</td>
|
||||
<td>
|
||||
{{ game.description }}
|
||||
{% if game.warning %}
|
||||
<br><mark>Warning:</mark> {{ game.warning }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td><a href="help_{{ game.name }}.html">More info</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Enjoy!</p>
|
||||
<h1>Code</h1>
|
||||
<p>Code for setting up server is on <a href="https://git.libregaming.org/DeathByDenim/gameserver">git.libregaming.org</a> and is licensed under the AGPLv3 or later.</p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
---
|
||||
---
|
||||
// Collection of scripts to deploy a server hosting several open-source games
|
||||
// Copyright (C) 2022 Jarno van der Kolk
|
||||
//
|
||||
|
@ -14,7 +16,7 @@
|
|||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
function createConsole(root, game_name, text_colour_function, initial_command, help_url, tooltip) {
|
||||
function createConsole(root, game_name, game_title, text_colour_function, initial_command, help_url, tooltip) {
|
||||
const div_card = document.createElement('div');
|
||||
const div_card_header = document.createElement('div');
|
||||
const h5 = document.createElement('h5');
|
||||
|
@ -33,7 +35,7 @@ function createConsole(root, game_name, text_colour_function, initial_command, h
|
|||
div_card_header.className = "card-header";
|
||||
h5.className = "mb-0";
|
||||
card_button.className = "btn btn-link";
|
||||
card_button.innerText = game_name[0].toUpperCase() + game_name.substr(1);
|
||||
card_button.innerText = game_title;
|
||||
div_collapse.className = "collapse";
|
||||
div_card_body.className = "card-body";
|
||||
|
||||
|
@ -88,7 +90,7 @@ function createConsole(root, game_name, text_colour_function, initial_command, h
|
|||
});
|
||||
|
||||
// Create WebSocket connection.
|
||||
const socket = new WebSocket("wss://DOMAINNAME/" + game_name)
|
||||
const socket = new WebSocket("ws{% if site.content.ssl %}s{% endif %}://{{ site.content.domain_name }}/" + game_name)
|
||||
|
||||
// Connection opened
|
||||
socket.addEventListener('open', function (event) {
|
||||
|
@ -109,64 +111,20 @@ function createConsole(root, game_name, text_colour_function, initial_command, h
|
|||
}
|
||||
|
||||
function consoles_init() {
|
||||
document.cookie = 'token=MD5GAMEPASSWORD; SameSite=Strict';
|
||||
document.cookie = 'token={{ site.content.md5password }}; SameSite=Strict';
|
||||
const root = document.getElementById('console-div');
|
||||
{% assign games_with_consoles = site.data.games | where_exp: "item", "item.has_console" | sort: "name" %}
|
||||
{% for game in games_with_consoles %}
|
||||
createConsole(
|
||||
root,
|
||||
'armagetronad',
|
||||
convertTerminalCodeToHtml,
|
||||
'players',
|
||||
'http://wiki.armagetronad.org/index.php?title=Console_Commands',
|
||||
"Helpful commands:\n• players\tShow current players\n• kick <name>\tKick the player\n• num_ais <num>\tSet the number of AIs for games with more than one player.\n• limit_rounds\tEnd the match after this number of rounds"
|
||||
);
|
||||
createConsole(
|
||||
root,
|
||||
'bzflag',
|
||||
convertTerminalCodeToHtml,
|
||||
'/playerlist',
|
||||
'https://wiki.bzflag.org/Slash_Commands',
|
||||
"Helpful commands:\n• /playerlist\tDisplay list of players\n• /kick <name>\tKick the player\n• /gameover\tend the current game"
|
||||
);
|
||||
createConsole(
|
||||
root,
|
||||
'mindustry',
|
||||
convertTerminalCodeToHtml,
|
||||
'status',
|
||||
'https://mindustrygame.github.io/wiki/servers/#dedicated-server-commands',
|
||||
"Helpful commands:\n• status\tDisplay server status\n• runwave\tTrigger the next wave\n• kick <name>\tKick a person by name"
|
||||
);
|
||||
createConsole(
|
||||
root,
|
||||
'opensoldat',
|
||||
convertTerminalCodeToHtml,
|
||||
'',
|
||||
'https://static.soldat.pl/man/manual-en.html#KOMENDY',
|
||||
"Helpful commands:\n• /nextmap\tSwitch to next map\n• kick /<name>\tKick a person"
|
||||
);
|
||||
createConsole(
|
||||
root,
|
||||
'teeworlds',
|
||||
convertTerminalCodeToHtml,
|
||||
'status',
|
||||
'https://www.teeworlds.com/?page=docs&wiki=server_commands',
|
||||
"Helpful commands:\n• status\tDisplay server status\n• change_map <mapname>\tSwitch to <mapname>\n• kick <id>\tKick a person by id"
|
||||
);
|
||||
createConsole(
|
||||
root,
|
||||
'unvanquished',
|
||||
convertDaemonedCodeToHtml,
|
||||
'/status',
|
||||
'https://wiki.unvanquished.net/wiki/Server/Running#Commands',
|
||||
"Helpful commands:\n• /listplayers\tList current players in-game\n• /kick <name>\tKick the player\n• /nextmap\tGo to the next map in the rotation"
|
||||
);
|
||||
createConsole(
|
||||
root,
|
||||
'xonotic',
|
||||
convertTerminalCodeToHtml,
|
||||
'who',
|
||||
'https://gitlab.com/xonotic/xonotic/-/wikis/Basic-server-configuration',
|
||||
"Helpful commands:\n• who\tList current players in-game\n• kick <name>\tKick the player\n• gotomap <name>\tGo to the specified map"
|
||||
'{{ game.name }}',
|
||||
'{{ game.title }}',
|
||||
convert{{ game.console_output_coloring }}CodeToHtml,
|
||||
'{{ game.console_initial_command }}',
|
||||
'{{ game.console_help_link }}',
|
||||
"Helpful commands:\n{% for command in game.console_example_commands %}• {{ command[0] }}\t{{ command[1] }}\n{% endfor %}"
|
||||
);
|
||||
{% endfor %}
|
||||
|
||||
collapse_init();
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
---
|
||||
---
|
||||
// Collection of scripts to deploy a server hosting several open-source games
|
||||
// Copyright (C) 2022 Jarno van der Kolk
|
||||
//
|
||||
|
@ -12,7 +14,7 @@
|
|||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
let heightScale = d3.scaleLinear()
|
||||
.domain([0,100])
|
||||
|
@ -51,7 +53,7 @@ function updateGraph(data, svgid, property_class, property) {
|
|||
}
|
||||
|
||||
function update() {
|
||||
d3.json('https://DOMAINNAME/monitoring/all').then(function(data){
|
||||
d3.json('http{% if site.content.ssl %}s{% endif %}://{{ site.content.domain_name }}/monitoring/all').then(function(data){
|
||||
updateGraph(data, '#memgraph', 'mem', 'm');
|
||||
updateGraph(data, '#cpugraph', 'cpu', 'c');
|
||||
});
|
||||
|
|
|
@ -0,0 +1,96 @@
|
|||
async function xonoticGetScores() {
|
||||
const data = await fetch("xonscore.txt");
|
||||
const text = await data.text();
|
||||
|
||||
let stats = [];
|
||||
let map_name = "[unknown]";
|
||||
let duration_in_seconds = 0;
|
||||
let labels = [];
|
||||
let round_stats = [];
|
||||
text.split("\n").forEach((row) => {
|
||||
const fields = row.split(":");
|
||||
if(fields.length > 1) {
|
||||
const verb = fields[1]
|
||||
switch(verb) {
|
||||
case "scores":
|
||||
map_name = fields[2];
|
||||
duration_in_seconds = fields[3];
|
||||
break;
|
||||
case "labels":
|
||||
if(fields[2] === "player") {
|
||||
labels = fields[3].split(",");
|
||||
}
|
||||
break;
|
||||
case "player":
|
||||
if(fields[2] === "see-labels") {
|
||||
let split_fields = fields[3].split(",");
|
||||
let player_stats = {name: fields[6]};
|
||||
for(let i = 0; i < labels.length; i++) {
|
||||
if(labels[i] != "") {
|
||||
player_stats[labels[i]] = split_fields[i]
|
||||
}
|
||||
}
|
||||
round_stats.push(player_stats);
|
||||
}
|
||||
break;
|
||||
case "end":
|
||||
if(round_stats.length > 0) {
|
||||
stats.push({
|
||||
map_name: map_name,
|
||||
duration_in_seconds: duration_in_seconds,
|
||||
stats: round_stats
|
||||
})
|
||||
}
|
||||
round_stats = [];
|
||||
labels = [];
|
||||
duration_in_seconds = 0;
|
||||
map_name = "";
|
||||
break;
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return stats;
|
||||
}
|
||||
|
||||
function xonoticScoreUpdate() {
|
||||
xonoticGetScores().then((data) => {
|
||||
let tables = d3.select("#xonotic-results")
|
||||
.selectAll("table")
|
||||
.data(data)
|
||||
.join(
|
||||
(enter) => {
|
||||
let table = enter.append("table");
|
||||
let thead = table.append("thead");
|
||||
thead.append("tr")
|
||||
.append("th")
|
||||
.attr("colspan", 5)
|
||||
.text((d) => "Map name: " + d.map_name);
|
||||
let headerrows = thead.append("tr");
|
||||
|
||||
["Name", "Score", "Kills", "Deaths", "Suicides"].forEach((col) => {
|
||||
headerrows.append("th").text(col);
|
||||
})
|
||||
|
||||
table.append("tbody");
|
||||
return table;
|
||||
},
|
||||
(update) => {
|
||||
let u = update;
|
||||
u.select("th").text((d) => "Map name: " + d.map_name);
|
||||
return u;
|
||||
},
|
||||
(exit) => exit.remove()
|
||||
)
|
||||
.classed("table", true);
|
||||
|
||||
let tbodies = tables.select('tbody');
|
||||
tbodies.selectAll("tr")
|
||||
.data((d) => d.stats)
|
||||
.join("tr")
|
||||
.selectAll("td")
|
||||
.data((d) => ["name", "score!!", "kills", "deaths<", "suicides<"].map((col) => d[col]))
|
||||
.join("td")
|
||||
.text((d) => d);
|
||||
});
|
||||
}
|
|
@ -1,65 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link active">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
---
|
||||
layout: default
|
||||
nav_pill: schedule
|
||||
---
|
||||
<h1>Schedule</h1>
|
||||
{% assign sitetime = site.time | date: "%FT%T" %}
|
||||
{% assign past = site.data.events | where_exp: "item", "item.date < sitetime" %}
|
||||
{% assign upcoming = site.data.events | where_exp: "item", "item.date >= sitetime" %}
|
||||
<h2>Upcoming</h2>
|
||||
<h4>Saturday 1 October 2022, 12:00 UTC</h4>
|
||||
<script>var zone = new Date().toLocaleTimeString('en-ca',{timeZoneName:'short'}).split(' ')[2];d=new Date("Sat, 01 Oct 2022 12:00:00 UTC");document.writeln("<p>(Local time: "+d.toTimeString()+")</p>")</script>
|
||||
<p>onFOSS-LAN hosted by HOSTEDBYNAME</p>
|
||||
<ul>
|
||||
<li>12:00UTC Get and chill together<script>d=new Date("Sat, 01 Oct 2022 12:00:00 UTC");document.writeln(" ("+ Intl.DateTimeFormat(undefined, {hour: '2-digit', minute: '2-digit', timeZoneName: 'short'}).format(d) + ")")</script></li>
|
||||
<li>13:00UTC New to onFOSS-LAN<script>d=new Date("Sat, 01 Oct 2022 13:00:00 UTC");document.writeln(" ("+ Intl.DateTimeFormat(undefined, {hour: '2-digit', minute: '2-digit', timeZoneName: 'short'}).format(d) + ")")</script></li>
|
||||
<ul>
|
||||
<li>UFO:AI</li>
|
||||
<li>Soldat</li>
|
||||
</ul>
|
||||
<li>15:30UTC Break<script>d=new Date("Sat, 01 Oct 2022 15:30:00 UTC");document.writeln(" ("+ Intl.DateTimeFormat(undefined, {hour: '2-digit', minute: '2-digit', timeZoneName: 'short'}).format(d) + ")")</script></li>
|
||||
<li>16:00UTC SuperTuxKart Tournament<script>d=new Date("Sat, 01 Oct 2022 16:00:00 UTC");document.writeln(" ("+ Intl.DateTimeFormat(undefined, {hour: '2-digit', minute: '2-digit', timeZoneName: 'short'}).format(d) + ")")</script></li>
|
||||
<li>18:00UTC Break<script>d=new Date("Sat, 01 Oct 2022 18:00:00 UTC");document.writeln(" ("+ Intl.DateTimeFormat(undefined, {hour: '2-digit', minute: '2-digit', timeZoneName: 'short'}).format(d) + ")")</script></li>
|
||||
<li>18:30UTC Good old classics<script>d=new Date("Sat, 01 Oct 2022 18:30:00 UTC");document.writeln(" ("+ Intl.DateTimeFormat(undefined, {hour: '2-digit', minute: '2-digit', timeZoneName: 'short'}).format(d) + ")")</script></li>
|
||||
<ul>
|
||||
<li>Lix</li>
|
||||
<li>Hedgewars</li>
|
||||
</ul>
|
||||
<li>20:30UTC Late night gaming<script>d=new Date("Sat, 01 Oct 2022 20:30:00 UTC");document.writeln(" ("+ Intl.DateTimeFormat(undefined, {hour: '2-digit', minute: '2-digit', timeZoneName: 'short'}).format(d) + ")")</script></li>
|
||||
</ul>
|
||||
{% for event in upcoming %}
|
||||
{% include event.html %}
|
||||
{% endfor %}
|
||||
<h2>Past</h2>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
{% for event in past %}
|
||||
{% include event.html %}
|
||||
{% endfor %}
|
||||
|
|
|
@ -1,47 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>onFOSS-LAN</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h1>Thanks!</h1>
|
||||
<p>
|
||||
The form has been successfully submitted. Your donation will not
|
||||
appear right away since it's a bit of a manual process!
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,45 +1,49 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Game server</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/serverstats.css">
|
||||
<link rel="icon" href="icon.svg" sizes="any" type="image/svg+xml">
|
||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||
<script src="js/serverstats.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="container">
|
||||
<header class="d-flex flex-wrap justify-content-center py-3 mb-4 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img class="bi me-2" width="40" height="32" src="img/blackmage.svg" alt="Site icon">
|
||||
<span class="fs-4">onFOSS-LAN hosted by HOSTEDBYNAME</span>
|
||||
</a>
|
||||
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="index.html" class="nav-link" aria-current="page">Home</a></li>
|
||||
<li class="nav-item"><a href="tournament.html" class="nav-link active">Tournament</a></li>
|
||||
<li class="nav-item"><a href="schedule.html" class="nav-link">Schedule</a></li>
|
||||
<li class="nav-item"><a href="help.html" class="nav-link">Help</a></li>
|
||||
<li class="nav-item"><a href="admin.html" class="nav-link">Admin</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
---
|
||||
layout: default
|
||||
nav_pill: tournament
|
||||
---
|
||||
<script src="js/xonscore.js"></script>
|
||||
<h1>Tournament</h1>
|
||||
<h2>Upcoming 1 October 2022</h2>
|
||||
<p>SuperTuxKart: Grand Prix</p>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<h5>Live stats</h5>
|
||||
SERVERSTATE
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
{% assign sitetime = site.time | date: "%FT%T" %}
|
||||
{% assign nextevent = site.data.events | where_exp: "item", "item.date >= sitetime" | last %}
|
||||
{% assign tournaments = nextevent.games | where_exp: "item", "item.tournament" %}
|
||||
{% if tournaments and tournaments.size != 0 %}
|
||||
<script>
|
||||
var event_year = {{ nextevent.date | date: "%Y" }};
|
||||
var event_month = {{ nextevent.date | date: "%M" }};
|
||||
var event_day = {{ nextevent.date | date: "%M" }};
|
||||
</script>
|
||||
<p>There will be a tournament for the next event on {{ nextevent.date | date: "%a, %b %d, %Y" }}</p>
|
||||
<ul>
|
||||
{% for game in tournaments %}
|
||||
{% assign time = game.time | split: ":"%}
|
||||
{% if game.time %}
|
||||
<li>{{ game.time }}UTC {{ game.title }}<script>d=new Date(Date.UTC(event_year, event_month, event_day, {{ time | slice: 0 }}, {{ time | slice: 1 }}));document.writeln(" ("+ Intl.DateTimeFormat(undefined, {hour: '2-digit', minute: '2-digit', timeZoneName: 'short'}).format(d) + ")")</script></li>
|
||||
{% else %}
|
||||
<li>{{ game.title }}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div id="xonotic-results"></div>
|
||||
<script>
|
||||
if(typeof d3 === 'undefined') {
|
||||
document.write('<p><a href="xonscore.csv">Results</a> (allow access to d3js.org for dynamic updates)</p>');
|
||||
}
|
||||
else {
|
||||
xonoticScoreUpdate();
|
||||
setInterval(xonoticScoreUpdate, 10000);
|
||||
}
|
||||
</script>
|
||||
<noscript><p><a href="xonscore.csv">Results</a> (Enable JavaScript for dynamic updates)</p></noscript>
|
||||
{% else %}
|
||||
<p>No tournaments have been planned for the next event.</p>
|
||||
{% endif %}
|
||||
<h2>Rules</h2>
|
||||
<p>By joining the tournament you accept following rules:</p>
|
||||
<h3>MOST IMPORTANT!</h3>
|
||||
<p>The most important rule is: HAVE FUN! Surely, the tournament is competitive, however, don't forget why we are all here - to have fun playing games together!</p>
|
||||
<h3>NO CHEATING!</h3>
|
||||
<p>If you cheat you will get banned from this and all upcoming tournaments! Cheating is: manipulating the game for your advantage. So any third-party tool that helps you is not allowed! Due to the blessing that FOSS games can be modified, modifications that give you an advantage are also considered cheating! So use the official binaries to play the tournament! If no binaries are available and you have to compile it on your own you are not allowed to modify the source. If there is any confusion <a href="index.html#communication">contact us</a> in advance and we will find a solution.</p>
|
||||
<h3>NO GRIEFING!</h3>
|
||||
<p>Griefers are going to be kicked immediately and if it happens frequently you will get banned from upcoming tournaments. We are all human beings and hopefully capable of being nice to each other! So respect each other and there will not be any problems!</p>
|
||||
<p>Leaving the tournament while it is still ongoing while you still have rounds to play is also not very nice.</p>
|
||||
|
|