Skip to content

Commit

Permalink
Merge pull request #50 from 7mochi/3.0-stable
Browse files Browse the repository at this point in the history
feat: update LLHL to 3.0-stable
  • Loading branch information
7mochi authored Sep 28, 2024
2 parents fcf4d3e + 70bbbb0 commit a95bd45
Show file tree
Hide file tree
Showing 17 changed files with 4,838 additions and 595 deletions.
233 changes: 165 additions & 68 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,101 +6,198 @@ on:
- '*'

jobs:
build:
build-linux:
runs-on: ubuntu-latest
container: centos:centos7
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Setting up CentOS 7 mirrorlist
run: |
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
- name: Installing required packages
run: |
yum install -y git make wget tar zip gcc gcc-c++ glibc-devel.i686 libstdc++-devel.i686
- name: Install NodeJS
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies for Linux
node-version: 12

- name: Clone LLHL AGMOD repository
run: |
make init-linux
git clone https://github.com/7mochi/llhl-agmod
- name: Clone LLHL repository
run: |
git clone https://github.com/7mochi/llhl
- name: Clone LLHL Resources repository
run: |
git clone https://github.com/7mochi/llhl-resources
- name: Build LLHL AGMOD serverfile .so
run: |
cd llhl-agmod
CPATH=$CPATH:/usr/include/c++/4.8.5/i686-redhat-linux CFG=$CONFIGURATION make -C dlls
- name: Build LLHL proyect (Linux) with node-amxxpack
run: |
make build-linux
- name: Rename dist folder
cd llhl && make init-linux && make build-linux
- name: Download latest AMX Mod X 1.9
run: |
mv dist dist-linux
- name: Install dependencies for Windows
wget "https://www.amxmodx.org/latest.php?version=1.9&os=linux&package=base" -O amxx.tar.gz
tar -xzf amxx.tar.gz -C llhl/dist/ag
- name: Replace hamdata.ini with our custom one
run: |
make init-windows
cp -f llhl/assets/addons/amxmodx/configs/hamdata.ini llhl/dist/ag/addons/amxmodx/configs/hamdata.ini
- name: Create folder and copy LLHL AGMOD .so
run: |
mkdir -p llhl/dist/ag/dlls
cp llhl-agmod/dlls/ag_i386.so llhl/dist/ag/dlls/ag.so
cp llhl-agmod/network/delta.lst llhl/dist/ag/delta.lst
- name: Build LLHL proyect (Windows) with node-amxxpack
- name: Create folder for full release
run: |
make build-windows
mkdir -p llhl/dist-full
cp -r llhl/dist/* llhl/dist-full
- name: Generate hashfile.sha1
- name: Copy LLHL resources to LLHL folder
run: |
cp -r llhl-resources/maps-ag-official/* llhl/dist-full/ag
cp -r llhl-resources/maps-ehll-unofficial/* llhl/dist-full/ag
cp -r llhl-resources/maps-valve-official/* llhl/dist-full/ag
- name: Prepare releases in zip
run: |
# First linux
cd dist-linux
cd llhl/dist && zip -r ../llhl-${{github.ref_name}}-linux.zip *
- name: Upload artifact (Lite version)
uses: actions/upload-artifact@v3
with:
name: llhl-${{github.ref_name}}-linux-lite
path: llhl/dist

# Find all files in the dist folder except for a few
find "$PWD" -type f -not -name "llhl.cfg" \
-and -not -name "plugins.ini" \
-and -not -name "*.inc" \
-and -not -name "*.sma" \
-and -not -name "*.gam" \
-and -not -name "motd_llhl*" \
-and -not -name "startup_server.cfg" \
-and -not -name "*.sha1" \
-exec sha1sum {} \; > hashfile.sha1
- name: Upload artifact (Full version)
uses: actions/upload-artifact@v3
with:
name: llhl-${{github.ref_name}}-linux-full
path: llhl/dist-full

# Go back to root folder
cd $GITHUB_WORKSPACE
# Move hashfile out of dist folder
mv dist-linux/hashfile.sha1 hashfile.sha1
build-windows:
runs-on: windows-2019

# Now windows
cd dist
steps:
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: 20

# Find remaining files
find "$PWD" -type f -name "*.dll" -exec sha1sum {} \; > hashfile_2.sha1
- name: Clone LLHL AGMOD repository
run: |
git clone https://github.com/7mochi/llhl-agmod
# Go back again
cd $GITHUB_WORKSPACE
- name: Clone LLHL repository
run: |
git clone https://github.com/7mochi/llhl
- name: Clone LLHL Resources repository
run: |
git clone https://github.com/7mochi/llhl-resources
# Move hashfile 2 out of dist folder
mv dist/hashfile_2.sha1 hashfile_2.sha1
- name: Setup MSBuild.exe
uses: microsoft/[email protected]

# Merge the contents of both files
cat hashfile_2.sha1 >> hashfile.sha1 && rm hashfile_2.sha1
- name: Build LLHL AGMOD serverfile .dll
run: |
cd llhl-agmod
# Remove useless path from the hashfile
sed -e "s,${PWD}/dist-linux/ag/,,g; s,${PWD}/dist/ag/,,g; s,addons/amxmodx/plugins/,,g" -i hashfile.sha1
msbuild multiplayer.sln -target:ag /p:Configuration=Release
- name: Replace llhl.amxx on windows with the one from linux
run: |
yes | cp -rf dist-linux/ag/addons/amxmodx/plugins/llhl.amxx dist/ag/addons/amxmodx/plugins/llhl.amxx
- name: Build LLHL proyect (Windows) with node-amxxpack
run: |
cd llhl && make init-windows && make build-windows
- name: Download latest AMX Mod X 1.9
run: |
wget "https://www.amxmodx.org/latest.php?version=1.9&os=linux&package=base" -O amxx-linux.tar.gz
wget "https://www.amxmodx.org/latest.php?version=1.9&os=windows&package=base" -O amxx-windows.zip
tar -xzf amxx-linux.tar.gz -C dist-linux/ag
unzip amxx-windows.zip -d dist/ag
- name: Prepare releases in zip
run: |
cd dist-linux && zip -r ../llhl-${{github.ref_name}}-linux.zip * && cd $GITHUB_WORKSPACE
cd dist && zip -r ../llhl-${{github.ref_name}}-windows.zip * && cd $GITHUB_WORKSPACE
- name: Upload all assets (Release)
- name: Download latest AMX Mod X 1.9
run: |
Invoke-WebRequest -Uri "https://www.amxmodx.org/latest.php?version=1.9&os=windows&package=base" -OutFile amxx.zip
Expand-Archive -Force -Path amxx.zip -DestinationPath llhl/dist/ag
- name: Replace hamdata.ini with our custom one
run: |
Copy-Item llhl/assets/addons/amxmodx/configs/hamdata.ini llhl/dist/ag/addons/amxmodx/configs/hamdata.ini -Force
- name: Create folder and copy LLHL AGMOD .dll
run: |
mkdir -p llhl/dist/ag/dlls
Copy-Item llhl-agmod/dlls/msvc/Release/ag.dll llhl/dist/ag/dlls/ag.dll
Copy-Item llhl-agmod/network/delta.lst llhl/dist/ag/delta.lst
- name: Create folder for full release
run: |
mkdir -p llhl/dist-full
Copy-Item -Path llhl/dist/* -Destination llhl/dist-full -Recurse
- name: Copy LLHL resources to LLHL folder
run: |
xcopy llhl-resources\maps-ag-official\* llhl\dist-full\ag /E /Y /I
xcopy llhl-resources\maps-ehll-unofficial\* llhl\dist-full\ag /E /Y /I
xcopy llhl-resources\maps-valve-official\* llhl\dist-full\ag /E /Y /I
- name: Prepare releases in zip
run: |
cd llhl/dist && Compress-Archive -Path * -DestinationPath ../llhl-${{github.ref_name}}-windows.zip
- name: Upload artifact (Lite version)
uses: actions/upload-artifact@v3
with:
name: llhl-${{github.ref_name}}-windows-lite
path: llhl/dist

- name: Upload artifact (Full version)
uses: actions/upload-artifact@v3
with:
name: llhl-${{github.ref_name}}-windows-full
path: llhl/dist-full

release:
runs-on: ubuntu-latest
needs: [build-linux, build-windows]
steps:
- name: Download Linux artifact (Lite version)
uses: actions/download-artifact@v3
with:
name: llhl-${{github.ref_name}}-linux-lite

- name: Download Linux artifact (Full version)
uses: actions/download-artifact@v3
with:
name: llhl-${{github.ref_name}}-linux-full

- name: Download Windows artifact (Lite version)
uses: actions/download-artifact@v3
with:
name: llhl-${{github.ref_name}}-windows-lite

- name: Download Windows artifact (Full version)
uses: actions/download-artifact@v3
with:
name: llhl-${{github.ref_name}}-windows-full

- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
files: |
./llhl-${{github.ref_name}}-linux.zip
./llhl-${{github.ref_name}}-windows.zip
./dist-linux/ag/addons/amxmodx/plugins/llhl.amxx
./hashfile.sha1
llhl-${{github.ref_name}}-linux-lite.zip
llhl-${{github.ref_name}}-linux-full.zip
llhl-${{github.ref_name}}-windows-lite.zip
llhl-${{github.ref_name}}-windows-full.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
64 changes: 36 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,54 +1,64 @@
# ![LLHL Banner](https://raw.githubusercontent.com/FlyingCat-X/llhl/master/LLHL_logo.png)
### [English Version](https://github.com/FlyingCat-X/llhl/blob/master/README.md) | [Spanish Version](https://github.com/FlyingCat-X/llhl/blob/master/README_ES.md) | [Portuguese Version](https://github.com/FlyingCat-X/llhl/blob/master/README_PT.md) | Chinese Version (Pending)
This plugin is a port for Adrenaline Gamer 6.6 (And AGMini) from my [LLHL gamemode](https://github.com/rtxa/agmodx/blob/master/valve/addons/amxmodx/scripting/agmodx_llhl.sma) that was developed for rtxa's agmodx.
This plugin is a port for Adrenaline Gamer 6.6 from my [LLHL gamemode](https://github.com/rtxa/agmodx/blob/master/valve/addons/amxmodx/scripting/agmodx_llhl.sma) that was developed for rtxa's agmodx.
Unlike my gamemode for agmodx, this one only supports Protocol 48.

# Important notes
If you have any problem in your server, before opening an issue or contacting me by any means (Facebook, Whatsapp, Discord, etc.) make sure that the error is related to the LLHL plugin. If you have any problem associated to the plugin try to be as detailed as possible and provide me with logs and ways to get to the error. I won’t give you support if the problem is related to other plugins e.g. dproto or reunion.

## Features
- FPS Limiter (Default value is 144).
- FOV Limiter (Minimum value is 85, disabled by default).
- FPS Limiter (Default value is 144, switchable from 144 to 240 and vice versa, you can toggle between them with the fpslimitmode vote)
- FOV Limiter (Default value is 85, enabled by default).
- Records a demo automatically when a match is started (With agstart).
- /unstuck command (10 seconds cooldown).
- Check certain sound files, they're the same sounds that are verified in the EHLL gamemode - AG6.6.
- Be able to destroy other players satchels (Optional, disabled by default).
- Block nickname and model changes when a game is in progress (Optional, both enabled by default).
- New intermission mode.
- More than 1 HLTV allowed.
- Force connected HLTV to have a certain delay value as a minimum (Minimum value is 30).
- Ghostmine Blocker.
- Simple OpenGF32 and AGFix detection (Through cheat commands).
- Nuke blocking capabilities (Lampgauss, ghostmine, rocket, etc)
- Simple OpenGF32 and AGFix detection (Through cheat commands. Optional, enabled by default).
- Take screenshots at map end and occasionally when a player dies.
- Avoid abusing a ReHLDS bug (Server disappears from the masterlist when it's' paused) only when there's no game in progress.
- Changing model during a match subtract 1 from the score. (Optional, enabled by default).
- Block access to players who have the game via Family Sharing. (Optional, disabled by default).
- Random spawns (Optional, disabled by default)
- Blocks location/HP/Weapon/etc messages for spectators
- Check for new updates and it will download them automatically.
- llhl_match_manager command (For administrators only)
- Random spawns (Optional, disabled by default).
- Blocks location/HP/Weapon/etc messages for spectators.
- Block spectators from voting (Optional, enabled by default).
- Respawn time are now FPS-independent.
- Fixes bodies frozen in the air when using high fps.
- Check for new updates and it will notify you in the server console.
- llhl_match_manager command (For administrators only).

## New cvars
- sv_ag_fpslimit_max_fps "144"
- sv_ag_fpslimit_max_detections "2"
- sv_ag_min_default_fov_enabled "0"
- sv_ag_min_default_fov "85"
- sv_ag_cvar_check_interval "1.5"
- sv_ag_fps_limit_warnings "2"
- sv_ag_fps_limit_check_interval "5.0"
- sv_ag_fov_min_enabled "1"
- sv_ag_fov_min_check_interval "1.5"
- sv_ag_fov_min "85"
- sv_ag_respawn_delay "0.75"
- sv_ag_unstuck_cooldown "10.0"
- sv_ag_unstuck_start_distance "32"
- sv_ag_unstuck_max_attempts "64"
- sv_ag_destroyable_satchel "0"
- sv_ag_destroyable_satchel_hp "1"
- sv_ag_block_namechange_inmatch "1"
- sv_ag_block_modelchange_inmatch "1"
- sv_ag_min_hltv_delay "30.0"
- sv_ag_block_ghostmine "1"
- sv_ag_nuke_grenade "0"
- sv_ag_nuke_crossbow "0"
- sv_ag_nuke_rpg "0"
- sv_ag_nuke_gauss "1"
- sv_ag_nuke_egon "0"
- sv_ag_nuke_tripmine "0"
- sv_ag_nuke_satchel "0"
- sv_ag_nuke_snark "0"
- sv_ag_explosion_fix "0"
- sv_ag_cheat_cmd_check "1"
- sv_ag_cheat_cmd_check_interval "5.0"
- sv_ag_cheat_cmd_max_detections "5"
- sv_ag_change_model_penalization "1"
- sv_ag_block_family_sharing "0"
- sv_ag_random_spawns "0"
- sv_ag_block_cmd_enhancements "1"
- sv_ag_block_vote_spectators "1"
- sv_ag_steam_api_key ""
- sv_ag_check_updates "1"
- sv_ag_check_updates_retrys "3"
Expand All @@ -58,20 +68,18 @@ If you have any problem in your server, before opening an issue or contacting me
- sv_ag_autoupdate_dl_retry_delay "3"

## Requirements
- Last version of HLDS (build 8308) or ReHLDS 3.6 or newer (Warning: Last version of ReHLDS for Linux has an auto-aim bug, download version 3.7.0.693 instead).
- Metamod 1.21.37p or newer, I recommend using [this version of metamod](https://github.com/Solokiller/Metamod-P-CMake/releases/tag/v1.21p39) (included and ready to use in development builds).
- Have [AMXX 1.9](https://www.amxmodx.org/downloads-new.php) installed or newer (included and ready to use in development builds).
- AMXX Module: [GoldSrc REST In Pawn (gRIP)](https://forums.alliedmods.net/showthread.php?t=315567)
- Pre-anniversary edition of HLDS (Build 8684) or latest [ReHLDS](https://github.com/dreamstalker/rehlds/releases) installed. 25th Anniversary compatibility hasn't been tested.
- A base installation of [AGMOD](https://openag.pro/latest/ag.7z).
- Metamod 1.21.37p or newer, I recommend using [this version of metamod](https://github.com/theAsmodai/metamod-r/releases/tag/1.3.0.149)
- Have [AMXX 1.9](https://www.amxmodx.org/downloads-new.php) installed or newer.
- AMXX Module: [Curl](https://forums.alliedmods.net/showthread.php?t=285656).

## Download (Stable)
## Download
- Full releases: Besides containing everything necessary for the proper functioning of the LLHL gamemode, it has new maps with their respective dependencies (Locs, wads, sprites, sounds, etc).
- Lite releases: Only contain what is necessary for the correct functioning of the LLHL gamemode. (Metamod and AMXX)
- Lite releases: Only contain what is necessary for the correct functioning of the LLHL gamemode. (Metamod, AMXX and the custom AGMOD for LLHL)

Download the [Latest Release](https://github.com/FlyingCat-X/llhl/releases/).

## Download (Dev builds)
- You can download them from [Github Actions](https://github.com/FlyingCat-X/llhl/actions). Click on any of the commits you want to try and download the corresponding artifact. (Windows or linux). The artifacts come with everything you need to run LLHL (Plugin, Gamemode .cfg file, Sounds to verify, amxmodx, metamod, etc).

## Installation (The easy way)
- Have a clean installation of Half Life with Adrenaline Gamer ready.
- Download any of the latest releases (Full or lite).
Expand Down
Loading

0 comments on commit a95bd45

Please sign in to comment.