Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/shavitush/bhoptimer into …
Browse files Browse the repository at this point in the history
…bhop-brethren
  • Loading branch information
BoomShotKapow committed May 28, 2024
2 parents 384e0f2 + 44ac27a commit 9f2350e
Show file tree
Hide file tree
Showing 25 changed files with 485 additions and 1,543 deletions.
20 changes: 10 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
sm-version: [ '1.10', '1.11', '1.12' ]
sm-version: [ '1.11' ] #, '1.12'

name: "Build SM ${{ matrix.sm-version }}"
steps:
- name: Prepare env
shell: bash
run: echo "GITHUB_SHA_SHORT=${GITHUB_SHA::7}" >> $GITHUB_ENV

- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Setup SP
uses: rumblefrog/setup-sp@master
Expand All @@ -28,10 +28,10 @@ jobs:
# Mac zip just because it's smaller & we don't repack the extensions...
wget https://github.com/ErikMinekus/sm-ripext/releases/download/1.3.1/sm-ripext-1.3.1-mac.zip
unzip sm-ripext-1.3.1-mac.zip "addons/sourcemod/scripting/include/*"
wget https://github.com/clugg/sm-json/archive/refs/tags/v4.1.1.tar.gz
tar --strip-components=1 -xvzf v4.1.1.tar.gz sm-json-4.1.1/addons/sourcemod/scripting/include
wget https://github.com/hermansimensen/eventqueue-fix/archive/refs/tags/1.3.1.tar.gz
tar --strip-components=1 -xvzf 1.3.1.tar.gz -C addons/sourcemod
wget https://github.com/clugg/sm-json/archive/refs/tags/v5.0.0.tar.gz
tar --strip-components=1 -xvzf v5.0.0.tar.gz sm-json-5.0.0/addons/sourcemod/scripting/include
wget https://github.com/hermansimensen/eventqueue-fix/archive/refs/tags/1.3.2.tar.gz
tar --strip-components=1 -xvzf 1.3.2.tar.gz -C addons/sourcemod
rm -rf *.zip *.tar.gz addons/sourcemod/.git* addons/sourcemod/LICENSE
- name: Run compiler
Expand All @@ -45,7 +45,7 @@ jobs:
done
- name: Upload artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: bhoptimer-${{ github.head_ref || github.ref_name }}-sm${{ matrix.sm-version }}-${{ env.GITHUB_SHA_SHORT }}
path: |
Expand All @@ -64,15 +64,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4

- name: Archive artifacts
shell: bash
run: find * -maxdepth 0 -type d -exec zip -rq {}.zip {} \;

- uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
draft: true
name: ${{ github.ref_name }}
artifacts: "*.zip"
artifacts: "*.zip"
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ Use the bhop-brethren branch if you're interested in the changes I've made to th

### RECOMPILE ALL YOUR PLUGINS THAT USE `#include <shavit>` OR STUFF WILL BREAK

### CS:GO is dead. Support won't be removed and gamedata should:tm: still work but it isn't actively tested.

[AlliedModders thread](https://forums.alliedmods.net/showthread.php?t=265456) // !!! OUTDATED !!!

[Download](https://github.com/shavitush/bhoptimer/releases)
Expand All @@ -18,20 +20,20 @@ Includes a records system, map zones (start/end marks etc), bonuses, HUD with us

# Requirements:
* Steam version of Counter-Strike: Source, Counter-Strike: Global Offensive, or Team Fortress 2.
* [Metamod:Source](https://www.sourcemm.net/downloads.php?branch=stable) and [SourceMod 1.10](https://www.sourcemod.net/smdrop/1.10/) (latest at bottom of list) [or 1.11+](https://www.sourcemod.net/downloads.php?branch=stable) installed.
* [Metamod:Source](https://www.sourcemm.net/downloads.php?branch=stable) and [SourceMod](https://www.sourcemod.net/downloads.php?branch=stable) 1.11 or higher.
* A MySQL database (preferably locally hosted) if your database is likely to grow big, or if you want to use the rankings plugin. MySQL server version of 5.5.5 or above (MariaDB equivalent works too) is required.
* [DHooks](https://github.com/peace-maker/DHooks2/releases)

# Optional requirements, for the best experience:
* [eventqueuefix](https://github.com/hermansimensen/eventqueue-fix)
* Allows for timescaling boosters and is used to fix some exploits. (Use this instead of `boosterfix`)
* (included in bhoptimer release zips)
* [SteamWorks](https://forums.alliedmods.net/showthread.php?t=229556)
* Used to grab `{serverip}` in advertisements.
* [DynamicChannels](https://github.com/Vauff/DynamicChannels)

# Installation

* [Build from source](https://github.com/shavitush/bhoptimer/wiki/1.-Installation)
* [Build from source](https://github.com/shavitush/bhoptimer/wiki/1.-Installation-(from-source))
* [Download an existing release](https://github.com/shavitush/bhoptimer/releases) - installing is simply drag & drop into the game server's directory.

# Configuration
Expand Down Expand Up @@ -273,6 +275,8 @@ Player commands:
- Allows players to toggle trigger visibility.
* [ShowPlayerClips](https://forums.alliedmods.net/showthread.php?p=2661942) ([github](https://github.com/GAMMACASE/ShowPlayerClips))
- Allows players to toggle player clip visibility.
* [JumpStats](https://github.com/Nimmy2222/bhop-get-stats)
- Covers SSJ, Jhud, StrafeTrainer, Strafe Offsets and FJT. Colors, HUD positioning editor, cookies, etc
* [shavit-ssj](https://github.com/Nairdaa/shavit-ssj)
- Speed of Sixth Jump + more, customisable settings with cookies remembering user prefered settings.
* [shavit-jhud](https://github.com/blankbhop/jhud)
Expand Down
65 changes: 22 additions & 43 deletions addons/sourcemod/configs/shavit-styles.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@
"command" "lg; lowgrav"
"clantag" "LG"
"gravity" "0.6"
"gravity" "0.5"
}
"9"
Expand Down Expand Up @@ -273,58 +273,37 @@
"11"
{
"name" "Auto Strafe"
"shortname" "AS"
"htmlcolor" "20CE1B"
"command" "as; autostrafe"
"clantag" "AS"
"name" "Auto Strafe"
"shortname" "AS"
"htmlcolor" "20CE1B"
"command" "as; autostrafe"
"clantag" "AS"
"inaccessible" "1"
"autostrafe" "3"
"block_a" "1"
"block_s" "1"
"block_d" "1"
"strafe_count_a" "0"
"strafe_count_d" "0"
"strafe_count_a" "0"
"strafe_count_d" "0"
"rankingmultiplier" "0.0"
"specialstring" "bash_bypass; oryx_bypass"
"special" "1"
"specialstring" "bash_bypass; oryx_bypass"
"rankingmultiplier" "0.5"
}
"12"
{
"name" "Auto Strafe Keys"
"shortname" "ASWK"
"htmlcolor" "148697"
"command" "aswk; autostrafekeys"
"clantag" "ASWK"
"inaccessible" "1"
"rankingmultiplier" "0.0"
"special" "1"
"specialstring" "bash_bypass; oryx_bypass"
}
"13"
{
"name" "Surf Half-Sideways"
"shortname" "SHSW"
"htmlcolor" "FF6A00"
"command" "shsw; shalfside; shalfsideways; surfhsw; surfhalfside; surfhalfsideways"
"clantag" "SHSW"
"name" "Surf Half-Sideways"
"shortname" "SHSW"
"htmlcolor" "FF6A00"
"command" "shsw; shalfside; shalfsideways; surfhsw; surfhalfside; surfhalfsideways"
"clantag" "SHSW"
"force_hsw" "2"
"force_hsw" "2"
"strafe_count_w" "0"
"strafe_count_a" "1"
"strafe_count_s" "0"
"strafe_count_d" "1"
"strafe_count_w" "0"
"strafe_count_a" "1"
"strafe_count_s" "0"
"strafe_count_d" "1"
"rankingmultiplier" "1.20"
}
}
}
43 changes: 6 additions & 37 deletions addons/sourcemod/gamedata/shavit.games.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"Games"
{
// A guide to find most of these signatures and offsets: https://www.youtube.com/watch?v=ekyLf6hu4qI
// A guide to find most of these signatures and offsets: https://www.youtube.com/watch?v=ekyLf6hu4qI and another https://www.youtube.com/watch?v=J7eHgK_UYOk

"#default"
{
Expand Down Expand Up @@ -74,13 +74,6 @@
"linux" "78"
"mac" "78"
}
// can be found inside BotAddCommand
"WEAPONTYPE_UNKNOWN"
{
"windows" "19"
"linux" "19"
"mac" "19"
}
// search string: "Can't find specific footstep sound!" to find CBasePlayer::PlayStepSound.
// then find the vtable from references and CBasePlayer::UpdateStepSound is right before PlayStepSound
"CBasePlayer::UpdateStepSound"
Expand Down Expand Up @@ -122,12 +115,6 @@
"windows" "\x55\x8B\xEC\x83\xEC\x14\x89\x4D\x2A\xFF\x15"
"linux" "\x55\x89\xE5\x57\x56\x53\x83\xEC\x2C\xE8\x2A\x2A\x2A\x2A\x84\xC0\x74\x2A\xA1"
}
// search string: "Error - no profile for '%s' exists."
"CCSBotManager::BotAddCommand"
{
"windows" "\x55\x8B\xEC\xA1\x2A\x2A\x2A\x2A\x53\x56\x57\x80\x78\x2A\x00"
"linux" "\x55\x89\xE5\x57\x56\x53\x83\xEC\x1C\x8B\x45\x2A\x89\x45\x2A\xA1\x2A\x2A\x2A\x2A\x0F\xB6\x70"
}
// search string: "remove 0x%p: %s-%s" to find PhysicsRemoveToucher.
// Find PhysicsCheckForEntityUntouch by checking the functions that call PhysicsRemoveToucher.
// This sucks to find.
Expand Down Expand Up @@ -193,13 +180,6 @@
"linux" "77"
"mac" "77"
}
// can be found inside BotAddCommand
"WEAPONTYPE_UNKNOWN"
{
"windows" "9"
"linux" "9"
"mac" "9"
}
// https://asherkin.github.io/vtable/
"CBasePlayer::UpdateStepSound"
{
Expand Down Expand Up @@ -265,12 +245,6 @@
"windows" "\x55\x8B\xEC\x83\xEC\x08\x57\x8B\xF9\x8B\x07\x8B\x40\x2A\xFF\xD0\x84\xC0\x0F\x84"
"linux" "@_ZN11CGameServer22UpdateHibernationStateEv"
}
// search string: "Error - no profile for '%s' exists."
"CCSBotManager::BotAddCommand"
{
"windows" "\x55\x8B\xEC\xA1\x2A\x2A\x2A\x2A\x80\x78\x2A\x00\x75\x2A\x83\xB8\x2A\x2A\x2A\x2A\x00"
"linux" "@_ZN13CCSBotManager13BotAddCommandEibPKc12CSWeaponType17BotDifficultyType"
}
// search string: "remove 0x%p: %s-%s" to find PhysicsRemoveToucher.
// Find PhysicsCheckForEntityUntouch by checking the functions that call PhysicsRemoveToucher.
"PhysicsCheckForEntityUntouch"
Expand Down Expand Up @@ -331,9 +305,10 @@
{
// search string: "BumperCar.Jump" to find CTFGameMovement::CheckJumpButton.
// Then the call to PreventBunnyJumping is right above the string reference somewhere...
// Update 2024-04-18: This fucking bitch got inlined on Windows so this signature is now to the first jump instruction of it to gtfo of doing the velocity stuff. https://i.imgur.com/LDq6Ubo.png
"CTFGameMovement::PreventBunnyJumping"
{
"windows" "\x56\x8B\xF1\x6A\x52\x8B\x8E\x2A\x2A\x2A\x2A\x81\xC1\xE0\x1A\x00\x00\xE8\x2A\x2A\x2A\x2A\x84\xC0\x75"
"windows" "\x75\x2A\x8B\x47\x2A\x8D\x77\x2A\x0F\x57\xC0"
"linux" "@_ZN15CTFGameMovement19PreventBunnyJumpingEv"
}
// search string: "Usage: setang_exact pitch yaw" to find setang_exact's handler. Then the last function call in the handler is DoAnimationEvent.
Expand All @@ -345,26 +320,20 @@
// search string: "match"
"BotManager::MaintainBotQuota"
{
"windows" "\x55\x8B\xEC\x81\xEC\x14\x01\x00\x00\xA1"
"windows" "\x55\x8B\xEC\xA1\x2A\x2A\x2A\x2A\x81\xEC\x10\x01\x00\x00\x83\xB8\x2A\x2A\x2A\x2A\x00"
"linux" "@_ZN13CTFBotManager16MaintainBotQuotaEv"
}
// search string: "CreatePlayerBot: Unable to create bot"
"NextBotCreatePlayerBot<CTFBot>"
{
"windows" "\x55\x8B\xEC\x56\x57\x68\x2A\x2A\x2A\x2A\xE8"
"linux" "@_Z22NextBotCreatePlayerBotI6CTFBotEPT_PKcb"
}
// search string: "remove 0x%p: %s-%s" to find PhysicsRemoveToucher.
// Find PhysicsCheckForEntityUntouch by checking the functions that call PhysicsRemoveToucher.
"PhysicsCheckForEntityUntouch"
{
"windows" "\x55\x8B\xEC\x51\x56\x8B\xF1\x8B\x86\x2A\x2A\x2A\x2A\xD1\xE8\xA8\x01"
"windows" "\x55\x8B\xEC\x83\xEC\x08\x57\x8B\xF9\x8B\x87\x2A\x2A\x2A\x2A\xD1\xE8"
"linux" "@_ZN11CBaseEntity28PhysicsCheckForEntityUntouchEv"
}
// search string: "scoreboard_minigame"
"CTFGameRules::CalcPlayerScore"
{
"windows" "\x55\x8B\xEC\x56\x8B\x75\x2A\x85\xF6\x75\x2A\x33\xC0\x5E\x5D\xC3\x8B\x56"
"windows" "\x55\x8B\xEC\x57\x8B\x7D\x2A\x85\xFF\x75\x2A\x33\xC0\x5F\x5D\xC3\x8B\x57"
"linux" "@_ZN12CTFGameRules15CalcPlayerScoreEP12RoundStats_tP9CTFPlayer"
}
// search string: "remove 0x%p: %s-%s (%d-%d) [%d in play, %d max]\n".
Expand Down
Loading

0 comments on commit 9f2350e

Please sign in to comment.