Skip to content

Releases: shavitush/bhoptimer

v4.0.1 - typo fix

06 Feb 18:19

Choose a tag to compare

previous release: v4.0.0
v4.0.0...v4.0.1

See v4.0.0 for more recent changes.

Changes:

  • fix native name typos and cement Shavit_AlsoSaveReplayTo 8d6e992
    • shavit-replay-recorder creates the Shavit_AlsoSaveReplayTo native, but the header file had the name as Shavit_AdditionalReplayPath.
      Shavit_AdditionalReplayPath was probably what I intended to use but I don't remember. The name is fine, so keeping it as Shavit_AlsoSaveReplayTo means less churn for other plugins.
    • Also makes sure the sucker is marked as optional for plugins that don't depend on bhoptimer but may want to use if available (e.g. for alt timers).

v4.0.0 - The release that breaks things and didn't merge enough

31 Jan 21:47

Choose a tag to compare

previous release: v3.5.1
next release: v4.0.1
v3.5.1...v4.0.0

Release numbers went from v3.5.1 to v4.0.0 because I broke some replay-recording functions to provide a better API for srcwr💾.

If you use these plugins, then you will have to update them:

If you use these plugins, then don't update bhoptimer until these receive an update:

Changes:

  • gamedata
    • Update CSGO m_afButtonDisabled signature 309cdf3
    • move shavit-mapfixes.cfg out of configs/ and into gamedata/ 3757b84
      • Easier to update this way.
    • Update TF2 gamedata (untested) 72a23e6
  • bug fixes
    • shavit-stats.sp - fix error due to IsPlayerAlive() being called on disconnected client #1188 @mourningsickness 14b9674
    • shavit-checkpoints.sp - fix aFrames and iPreFrames not always being set #1244 @mourningsickness 466bcf6
    • Fix savestates not enabling recording (found by happydez) 4f43b628ae1f1f923ceb518528de074b2c765966\
    • shavit-replay-playback.sp - fix error in case where style == -1 #1254 @mourningsickness b1e8e15
    • (IMPORTANT) Fix the on-ground 0.5s start-timer check which stops shit like "lowjumps" (thanks to PixeL for informing and testing)
      • Fix the on-ground 0.5s start-timer check from 89e97df 00feb62
      • Fix the on-ground 0.5s start-timer even further dot dot dot 128940f
    • change RemoveFromString() to hopefully not access out of bounds memory (olivia ran into this) beaaccd
    • Fix duped maps in !nominate when there are multiple end-zones #1256 @Awesomerly 5ca44fe
    • Load all replay frame cells into memory instead of only 8 9e82623
      • Requires you to recompile any savestate plugins. Read the commit message for more details.
    • reset gB_InCheckpointMenu OnClientDisconnect #1263 @mourningsickness f1d0af4
    • Prevent jointeam from being too spammable f636793
      • This doesn't fix any exploits but might help mitigate against people trying to crash the server.
  • quality of life
  • misc
    • Clarify shavit_replay_timelimit 0.0/disabled not recording replays 70308f3
    • Include eventqueuefixfix in release zips (only needed on Windows) 378a2ea
    • bump to v4.0.0 8ceacc4
      • including this because it also added SHAVIT_VERSION_MAJOR, SHAVIT_VERSION_MINOR, and SHAVIT_VERSION_PATCH which can be used in ifdefs now.
    • fix comment on Shavit_OnTimeIncrementPost 317169d
  • features
    • add !worldrecord/!wr aliases (!serverrecord/!sr) (#1257) #1257 @mourningsickness 7d3913b
    • Add tier selection menu to mapsleft and mapsdone menus (with "All" option, for current functionality) #1262 @mourningsickness a350d79
    • Make it easier to change the max tier 7cbb250
      • Some servers like to raise the max tier. This requires editing the code. Now with another plugin: you can set shavit_rankings_default_tier's upper bounds and then blah blah. Not really tested though.
    • shavit-hud.sp - add perf% to center hud #1259 @mourningsickness 133c4e5
    • shavit_core_pause_movement - add extra 2 cvars for pause #1250 @normalamron 7502325
    • Prioritize extend/dontchange/reroll for a tied vote #1265 cceba51
      • Adds smc_mapvote_prioritize_special (1 by default) to toggle this behavior.
    • srcwr💾
      • What: sourcemod extension (.dll/.so) to write replays with a background thread.
      • Why: reduces lag when people finish a run.
      • What this breaks:
        • Shavit_ShouldSaveReplayCopy, Shavit_OnReplaySaved, and WriteReplayFrames.
        • Why: poor API with the makeCopy params etc, and by changing it: we can write replays for third-party plugins (like https://github.com/BoomShotKapow/shavit-myreplay)
      • All the commits:
        • Use an extension to save replays asynchronously #1253 16ccd0c
        • d08a307
        • f14cbf5
        • 871c67d
        • 0ebfa90
        • add Shavit_AdditionalReplayPath, edit & rename Shavit_ShouldSaveReplayCopy to Shavit_AddAdditionalReplayPathsHere, edit Shavit_OnReplaySaved, edit WriteReplayFrames, and make compatible with srcwr💾 v4.0.0 eb079a6

v3.5.1 - small things

24 Jun 15:46

Choose a tag to compare

previous release: v3.5.0
next release: v4.0.0
v3.5.0...v3.5.1

don't forget to checkout 3.5.0's changelog: https://github.com/shavitush/bhoptimer/releases/tag/v3.5.0

changes:

  • fix olivia's name in the author lists f0ccf6d
  • shavit-wr.sp - add back buttons to !delete menus (QoL) 877b71a @mourningsickness @rtldg
  • Keep all menus open forever bb09568
    • a few that were missed in a pass a couple years ago

v3.5.0 - too much, too little, and too late

06 Jun 14:52

Choose a tag to compare

previous release: v3.4.2
next release: v3.5.1
v3.4.2...v3.5.0

this is too dense and unreadable. I'm sorry...

  • random things
    • move around the absolute minimum time (0.11s) stuff 2dbb211
    • fix wrong variable used in LessStupidGetMapDisplayName (relevant for tf2 & csgo) afa6b07
    • reset sv_enablebunnyhopping & sv_airaccelerate flags for late loading #1187 @xhaooy 830ebc1
    • reset hp on restart #1187 @xhaooy 9eceb51
    • fix showing 100% perf with no jumps on scroll @Nairdaa a4c214c
    • fix some native definition & optional api things 9210b84
    • add note about startinair (the style setting) 86b3643
    • note for autostrafe (the style setting) option 4 / basic autostrafer v3.4.2...master
    • round up fractional ticks when calculating finish time afdf236
    • Godmode fix for DMG_CRUSH and point_hurt #1188 @azalty ca60971
    • fix hsw sync @Nairdaa 5a0b8c2
    • get the shavit_misc_prespeed 1&&>=3 working again with the on-ground timer 309aa7a
    • add bhop_wasd to shavit-mapfixes.cfg 60c4f39
    • use correct gravity for LG #1197 @lilac1337 f9bb0a3
      • the default LG style in bhoptimer has always been "gravity" "0.6" but btimes used 0.5 and a lot of people switch to 0.5 so this is just "fixing" the default in bhoptimer...
    • stripper cfg touchups 9b96f9d
      • make all the filters use more normalized structures so that one sourcepawn stripper replacement can parse these files...
    • add jumpstats to readme https://github.com/shavitush/bhoptimer/pull/12007 @enimmy 835678d
    • add backwards hsw sync #1194 @Nairdaa c2dbf6d
    • drop support for sourcemod 1.10 16a927c
    • use style runspeed instead of m_flMaxspeed for tas (and autoprestrafe) 3609adf
      • (autoprestrafe is broken on 250 runspeed otherwise...)
    • add a note for a_or_d_only in shavit-styles.cfg 2a23c05
    • document some API structs fee7df2
    • Clarify logic for testing writeability with faketestfile_69.replay #1217 @Nairdaa 1b67644
    • do something to not error on negative sv_friction and negative sv_accelerate 187bd2c
      • like on bhop_ins_mariooo
    • fix some colors in advertisement messages not working ad48aa3
    • check & use sv_autobunnyhopping even if the game is not CS:GO (and it's in CS:S as of the 2025-02-18 update! Thank you @misyltoad) 94ebb97
    • other gamedata stuff for 2025-02-18 update: #1226 90a6714
      • Make sure MaybeDoPhysicsUntouch() is called in ProcessMovementPost 2c093bb
    • swap sm_p to sm_noclip in shavit_misc_noclipme description #1230 @lilac1337 78f55f9
    • add shavit_misc_unnocliponrestart to disable noclip on restart #1232 @mourningsickness 2726865
    • Add FirstLogin to database and profile #1234 @mourningsickness 3d0cd96
      • Make firstlogin pull from old runs if possible 158edbe
        • follow up commit to fix my bad sql b29cc54
    • Mark Steam Datagram Relay IPs 983a3c8
      • (shows "Steam Datagram Relay" for the player's country if that's how they last connected)
    • fix: prevent unnecessary jump when using !r or switching to TAS (brought to attention by @akanora) 7e1c3f0
    • shavit-chat - fix chat messages near (or at) max length overflowing into a broken message #1241 @mourningsickness 4910500
      • this increases the user chat message buffer size
  • menu & hud things
    • save !wr menu record page for back button 9423ef7
    • timeleft hud - show seconds starting at 150s 3a1e6a6
    • untested In Start/End zone speed removal if !hud removed speed... f6fdd7b
    • increase menu-input blocker time e8ff7fe
      • this is the thing that's used when you have a checkpoint menu open and then a mapvote comes up, for example
    • add keyhint forwards and forceUpdate #1201 @enimmy d57ec73
    • allow the !recentrecords menu to be sorted by style 4652e36
    • fix error spam from PR #1201 23fa606
    • add player PB to !style menu #1239 @mourningsickness b1a2f06
  • checkpoint things
    • Make sure CSS uses the ladder checkpoint stuff c2a9017
      • this also changes the checkpoint struct size because we need to save some internal ladder variables the engine uses
      • ALWAYS include this (so third-party plugins don't have to be rebuilt sometimes) 2013968
    • save m_afButtonDisabled & m_afButtonForced in checkpoints (mainly for player_speedmod) bf5ec55
      • this makes kz_bhop_genkai a bit more bearable at times
        this also isn't perfect since restarting doesn't reset them
      • csgo gamedata d93ed28
    • Prevent gB_ForceJump when teleporting to a checkpoint in the start zone #1240 @akanora cd4f1c9
  • zones things
    • make shavit_zones_box_offset a bool (which also affects height offset) & correct TF2 bounding box values #1179 @jedso f7ff341
      • Summary Previously with offsets: - Zone is 62/2 units raised off the "ground". - Zone is 62/2 units shorter than the beams showed. Previously without offsets: - Zone is 62/2 units raised off the "ground". - Zone is 62/2 units shorter than the beams showed. Now with offsets: - Zone is 62/2 units raised off the "ground". - Zone is 62/2 units shorter than the beams showed. Now without offsets: - Zone is 0 units raised off the "ground".

...

Read more

v3.4.2 - Long overdue edition (Extended Director's Cut)

17 Oct 12:39

Choose a tag to compare

previous release: v3.4.1
next release: v3.5.0
v3.4.1...v3.4.2

Bug fix release for v3.4.0 / v3.4.1. See the changelogs here: https://github.com/shavitush/bhoptimer/releases/tag/v3.4.0
https://github.com/shavitush/bhoptimer/releases/tag/v3.4.1

  • mark SteamWorks_SetHTTPRequestAbsoluteTimeoutMS as optional in shavit-zones-http f16b9aa
  • faster mysql query for the deprecate exact_time_int stuff (and more migration logging) 07727e1
    • the transaction batches turned out to be REALLY slow

v3.4.1 - Long overdue edition (Director's Cut)

16 Oct 21:56

Choose a tag to compare

v3.4.0...v3.4.1

Bug fix release for v3.4.0. See the changelog for v3.4.0 here: https://github.com/shavitush/bhoptimer/releases/tag/v3.4.0

  • fix leaderboard times from mysql not parsing correctly (after the deprecation of exact_time_int in v3.4.0 894b039) 4fee1e4
    • Mysql returns formatted floats with commas when it's >=1000 (like 2,095.12345123). The comma makes DBResultSet.FetchFloat (atof internally) return 2 instead of 2095.12345123.
  • potentially fix segmented replay saving edge case & add some error logging if replay files can't be opened for writing 5ac888c

v3.4.0 - Long overdue edition

14 Oct 15:33

Choose a tag to compare

Edit 2022-10-22: attached updated gamedata for CSGO (Windows + Linux)

v3.4.2

  • mark SteamWorks_SetHTTPRequestAbsoluteTimeoutMS as optional in shavit-zones-http f16b9aa
  • faster mysql query for the deprecate exact_time_int stuff (and more migration logging) 07727e1
    • the transaction batches turned out to be REALLY slow

v3.4.1

  • fix leaderboard times from mysql not parsing correctly (after the deprecation of exact_time_int in v3.4.0 894b039) 4fee1e4
    • Mysql returns formatted floats with commas when it's >=1000 (like 2,095.12345123). The comma makes DBResultSet.FetchFloat (atof internally) return 2 instead of 2095.12345123.
  • potentially fix segmented replay saving edge case & add some error logging if replay files can't be opened for writing 5ac888c

v3.4.0

v3.3.2...v3.4.0

Note: Release includes eventqueuefix 1.3.1 which works with Sourcemod 1.10/1.11 Windows/Linux

Thanks to all the contributors who pushed this release along by making PRs which made me feel guilty for slacking.

v3.3.2 - bug fixes 2 📲 👙 🍌 ⛩ 🕗 🖋 🐰 🚨 🐂 😘

20 Jul 19:59

Choose a tag to compare

v3.3.1...v3.3.2

  • some czones bugfixes
    • fixed bonus 1 using the same settings as main (bug since 3.3.0) 684ade8
    • fixed czone cookies when using mysql but reverting all the fun space saving stuff 1e7459a
  • made the !editzone adjust menu not have multiple pages bf25061
  • some random things & doc updates 898c463 @BoomShotKapow 7878784
    • also only increases strafe count when not-on-ground now
  • added bhop_avantasia to mapfixes to set rngfix_triggerjump 0 because of one of the roofs with the ac units or whatever they are @lilac1337 cec7805
  • made looping replay bots spawn on different ticks to hopefully help the people who get the occasional script execution timeout f703aca

v3.3.1 - bug fixes 🥤

11 Jul 14:48

Choose a tag to compare

v3.3.0...v3.3.1

A release for all the bugs that cropped up for the zones stuff & for the ccname thing.

I did make releases for a couple (v3.3.0-2 through v3.3.0-4) but that was sloppy versioning and then I was too busy to make a release with more of the bug fixes...

Eventqueuefix note: the release zip includes a version for Sourcemod 1.10 & for Sourcemod 1.11. The 1.11 version comes from @BoomShotKapow hermansimensen/eventqueue-fix@ce28b30. More info here hermansimensen/eventqueue-fix#19. It's needs more testing according to @hermansimensen so feel free to help :) nevermind

  • fixed a couple of ccname bugs that came from v3.3.0 0360b95 d78393f
  • split mapzones form & target migration so the query can be compatible with sqlite 6dc1fb6
  • !addspawn broke after zones wip pr so bdfa61e
  • added a_or_d_only style setting so you can have a single merged style for a-only & d-only if you want 64bd95a 7e44264 (#1150)
  • reverted a change made to the !top query so we have the pretty commas separators again 1449b9b
  • added a menu for !deletesetstart 8900e4b
  • fixed zones not deleting from the database if you create then delete them without reloading the map fb42a37 4ac0b4d
  • fixed zones sometimes not being created on maps that autohook buttons & other prebuilt zones 0f7360f
  • don't draw zone boxes around hooked buttons 27ec578
  • added hooking by origin (ZF_Origin zone flag) & fixed a lot of broken button stuff 5c14dfc
    • really should've used a different struct member for ZF_Origin/ZF_Hammerid instead of using flags but whatever :^)
  • made shavit-mapchooser not break if shavit-rankings throws errors about a sqlite db (#1149) a778908
    • this is more of a bandaid until I make shavit-rankings queries for sqlite & postgresql (#1148)

v3.3.0 - zone stuff & bloat

28 Jun 02:55

Choose a tag to compare

v3.2.0...v3.3.0-3

Note: Contributors and more copyright attributions were added to files and plugins mostly by skimming through git blame. If a name was missed or should be added/removed, please let me know (also the ordering of names was pretty random)

Edit: bhoptimer-v3.3.0-2.zip = includes 0360b95
Edit: bhoptimer-v3.3.0-3.zip = includes 6dc1fb6
Edit: bhoptimer-v3.3.0-4.zip = includes bdfa61e

zone stuff

  • main commits e3aac2d 4315221
  • new cvars:
    • shavit_zones_usesql: Whether to automatically load zones from the database or not. If you're using standardized zones from some source with shavit-zones-http, then you'd change this cvar to 0 for example.
    • shavit_zones_useprebuilt: Whether to automatically hook trigger_multiple zones like climb_zone* and mod_zone*.
    • shavit_zones_usebuttons: Whether to automatically hook climb_* buttons...
  • you can now hook trigger_multiples, func_buttons, and trigger_teleports by their hammerids or by targetname (trigger_multiple/func_button) / target (trigger_teleport).
    • trigger_teleports should usually be hooked by hammerid because hooking by target is a bit iffy.
    • there's a menu that shows all the hookable things and the player's distance to them. also a menu option to hook the thing the player is looking at...
    • oh yeah, it's sm_hookzone and also in the Timer Commands menu
  • shavit-zones-http.sp added. maybe sourcejump can use it or something.
    • this plugin is also a good example of how to use the new APIs for adding zones from other plugins.
    • The dependencies & headers (sm-json & ripext) for this plugin are not included in the bhoptimer repo. You'll have to retrieve them yourself for now if you intend to compile this.
  • zone points are now be normalized (sql migration and when sending to db). corner1 turns into the zone mins and corner2 turns into the maxs.
  • a "speed" zone config thing was added for zones. you can add this key to shavit-zones.cfg to make zone beam textures move.
  • api and stuff:
    • zone_cache_t is now usable for adding zones from other plugins.
      • forward Shavit_LoadZonesHere() is where you should add zone_cache_t's from other plugins
    • removed Shavit_GetStageZone() as it doesn't work well with multiple stage zones.
    • added Shavit_ReloadZones(), Shavit_UnloadZones(), Shavit_GetZoneCount(), Shavit_GetZone(), Shavit_AddZone(), and Shavit_RemoveZone()
    • MAX_ZONES 64->128. MAX_STAGES 51->69.

everything else

  • added an option to use an duplicate other players' checkpoints (#1142) @sh4hrazad 487e3db
    • You can toggle this with shavit_checkpoints_useothers (default: 1)
    • new parameters added to Shavit_OnTeleportPre, Shavit_OnTeleport, Shavit_OnSavePre, Shavit_OnSave, Shavit_OnCheckpointMenuSelect, and Shavit_TeleportToCheckpoint
  • changed czone settings to let all zone types be configurable. made the settings for bonuses apply to every bonus ab73e36
  • added Zone_Speedmod so oblivious could have fun bonuses acf47a1
    • avoid putting these inside of entites that trigger a map's player_speedmod because they'll probably override each other randomly
    • also gravity zones should show the gravity amount in zone edit menus now
  • added the !maprestart & !mapreload aliases a23348d
  • add csgo stripper:source configs for workshop/2117675766/bhop_craton, workshop/1195609162/bhop_bless, and workshop/859067603/bhop_bless d816423
    • also a config for a shit mod_zone_start on bhop_n0bs1_css was added
  • added ent_fire to cheat commands list since it can be used on csgo bc62b92
  • added HUD_SPECTATORSDEAD / !hud option Spectator list (only when dead) to hide the spectators list when you're alive because people spectating me makes me nervous 😵‍💫 22a68b4
  • added shavit_core_hijack_teleport_angles (temporary?) TODO description 53463d8
  • added an option to toggle the basic autostrafer on the autogain/velocity/oblivious autostrafer thing c2e5076
    • +Shavit_SetAutogainBasicStrafer, +Shavit_GetAutogainBasicStrafer, sm_autogainbss, +/-autogainbss
  • slay zones were changed slightly so the player-killer has a 100% success rate..... but make it only slay if the timer is running 96ef03e
  • made the !wr menu also print steamids to chat like the !profile menu does 7dddfe2
  • added sm_beamer d8a9dd7
  • added shavit_misc_bad_setlocalangles_fix for CS:S/TF2. fixes some func_rotating things that stop rotating 79baadf
  • the player's current value from player_speedmods is now reset to 1.0 on timer start. this shouldn't affect many things but it does help on deathrun_steam_works 8f11f9a
    • open an issue or join the discord if you encounter any problems with this please.
  • fixed the Timer Commands admin menu category disappearing or being wiped when some bhoptimer plugins are reloaded 09917f9
  • !ccmsg off and !ccname off were changed slightly ||i can't remember what the difference is now|| bfa9aa4
  • fixed some flag & admin checks for shavit-chat ranks when reloading or removing admin from people 41f5050 affac70
  • added buttons, scrolls, and anglediff to huddata_t 8e0e5ec
  • added back button to admin command menus 7c251ef
  • sqlite now automatically runs migrations too fa6ccdb
  • added shavit_core_log_sql and removed Database2/Transaction2 methodmap nonsense 0f44dd1
  • added an auto stage zone numbering thing for #1147 d922ceb
    • first stage thing is given 2... I'm not really sure what I want to do for this...
  • playtime saving sql queries from disconnecting players are now buffered & grouped into a transaction. so instead of on map change spamming like 12 queries, with the delay between queries for each, the timer will now just have to send one transaction to hopefully help with some slight sql query blockage on map change... fa28502
  • added shavit_replay_disable_hibernation for CS:S. 9cbed19
  • fixed permission style setting typo that came from the v3.1.0 release 1a03bda
  • updated tf2 gamedata for the 2022-06-21 update 178d42e
  • added some code to help deal with different sql db drivers. should help with porting queries to sqlite (shavit-rankings) & postgresql (sm 1.11) 4486528