Skip to content

Latest commit

 

History

History
1717 lines (1431 loc) · 146 KB

CHANGELOG.md

File metadata and controls

1717 lines (1431 loc) · 146 KB

CHANGELOG.md file for bhoptimer -- https://github.com/shavitush/bhoptimer Note: Dates are UTC+0.

v3.4.2 - Long overdue edition (Extended Director's Cut) - 2022-10-17 - rtldg

v3.4.1...v3.4.2 https://github.com/shavitush/bhoptimer/releases/tag/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

v3.4.1 - Long overdue edition (Director's Cut) - 2022-10-16 - rtldg

v3.4.0...v3.4.1 https://github.com/shavitush/bhoptimer/releases/tag/v3.4.1 https://github.com/shavitush/bhoptimer/commit/d0d3c62ff56e64d5909592381e86ab6fe4e36023

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

v3.4.0 - Long overdue edition - 2022-10-14 - rtldg

v3.3.2...v3.4.0 https://github.com/shavitush/bhoptimer/releases/tag/v3.4.0 https://github.com/shavitush/bhoptimer/commit/3db30bea9877bd69851efb9dde6b1a70a063d721

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 📲 👙 🍌 ⛩ 🕗 🖋 🐰 🚨 🐂 😘 - 2022-07-20 - rtldg

v3.3.1...v3.3.2 https://github.com/shavitush/bhoptimer/releases/tag/v3.3.2 https://github.com/shavitush/bhoptimer/commit/e76ab45a55ab630b26852c47f87bcde6347806a5

v3.3.1 - bug fixes 🥤 - 2022-07-11 - rtldg

v3.3.0...v3.3.1 https://github.com/shavitush/bhoptimer/releases/tag/v3.3.1 https://github.com/shavitush/bhoptimer/commit/5ba8ede632258ff3b0855ef792dce5369bec62da

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 https://github.com/hermansimensen/eventqueue-fix/commit/ce28b301a3d187a96f9c437e81d9d5deefee2fd5. More info here hermansimensen/eventqueue-fix#19. It's needs more testing according to @hermansimensen so feel free to help :) nevermind

v3.3.0 - zone stuff & bloat - 2022-06-28 - rtldg

v3.2.0...v3.3.0-3 https://github.com/shavitush/bhoptimer/releases/tag/v3.3.0 https://github.com/shavitush/bhoptimer/commit/1a86a2b643a324b38b648ffeeed83c1c19e30b6f https://github.com/shavitush/bhoptimer/releases/tag/v3.3.0-3 https://github.com/shavitush/bhoptimer/commit/8aad5e6f005cc73408191ced645017df175a163f

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 https://github.com/shavitush/bhoptimer/commit/0360b957e46ac46866313f9d7a97d6dc5635c208 Edit: bhoptimer-v3.3.0-3.zip = includes https://github.com/shavitush/bhoptimer/commit/6dc1fb66e4a559ec397575956431dc617ad6f9ae Edit: bhoptimer-v3.3.0-4.zip = includes https://github.com/shavitush/bhoptimer/commit/bdfa61e3f9fb53f96531d76819d8f45a105ab4d2

zone stuff

  • main commits https://github.com/shavitush/bhoptimer/commit/e3aac2d24efc239cf8bc6d1296f0ede031b7f0b1 https://github.com/shavitush/bhoptimer/commit/4315221b86889c65c2b35d9d07bf3241e4c57315
  • 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

v3.2.0 - checkpoints & resettargetname stuffffff - 2022-04-27 - rtldg

v3.1.3...v3.2.0 https://github.com/shavitush/bhoptimer/releases/tag/v3.2.0 https://github.com/shavitush/bhoptimer/commit/7c842afdf05e6c9b37174d7b1d6e21d685f6ce57

Lots of checkpoint API changes and also lots of changes to how the shavit_misc_resettargetname family works.

Protip: If you don't have eventqueuefix on your server then you're going to suffer through booster exploits & other broken shit.

Update shavit-mapfixes.cfg every release. It wasn't ever explicitly mentioned in release notes so I'll put it here.

Maps that have triggers in the start zone for resetting targetnames & classnames should now activate with @GAMMACASE's changes (#1123 / #1135) to the shavit_misc_resettargetname family, compared to previously where it wiped all events in the startzone and had a lot of cvars added to shavit-mapfixes.cfg to unbreak the maps.

If you have any new breakage on maps, let us know in the discord server or with a Github issue.

// Enable sm_usp, sm_glock, sm_knife, and infinite ammo?
// 0 - Disabled
// 1 - Enabled
// 2 - Also give infinite reserve ammo for USP & Glocks.
// 3 - Also give infinite clip ammo for USP & Glocks.
// 4 - Also give infinite reserve for all weapons (and grenades).
// 5 - Also give infinite clip ammo for all weapons (and grenades).
// -
// Default: "2"
// Minimum: "0.000000"
// Maximum: "5.000000"
shavit_misc_weaponcommands "2"

v3.1.3 - asdf - 2022-02-27 - rtldg

v3.1.2...v3.1.3 https://github.com/shavitush/bhoptimer/releases/tag/v3.1.3 https://github.com/shavitush/bhoptimer/commit/d77fa13ebe679b7cca4493436e1fa045a15d3865

edit: bhoptimer-v3.1.3-1.zip = included eventqueuefix license. bhoptimer-v3.1.3-2.zip = bug fix commit included from https://github.com/shavitush/bhoptimer/commit/70f29d3ca55a9f70d64f74ac9059c3cd1ab00a7a

small things mainly and might as well push out a release instead of waiting another two weeks. hopefully nobody notices that half the !czones colors don't work because overlapping beams fucks with the color intensity. might have a bigger release next that messes with how the replays are stored and the replay format.

v3.1.2 - asdf - 2022-01-28 - rtldg

v3.1.1...v3.1.2 https://github.com/shavitush/bhoptimer/releases/tag/v3.1.2 https://github.com/shavitush/bhoptimer/commit/d335ec72625b29f90668ab332f58323e528dd98f

v3.1.1 - asdf - 2022-01-19 - rtldg

v3.1.0...v3.1.1 https://github.com/shavitush/bhoptimer/releases/tag/v3.1.1 https://github.com/shavitush/bhoptimer/commit/a1d30afdbe8352df489f5e16739efcdde56129f2

Note: If you get errors like this then just restart your server because it should be a one-off thing.

[shavit-rankings.smx] Timer (WR Holder Rank table creation 0/4) SQL query failed. Reason: View 'shavit.wrs' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

[shavit-wr.smx] Timer (WR RetrieveWRMenu) SQL query failed. Reason: View 'shavit.wrs' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

v3.1.0 - asdf - 2022-01-11 - rtldg

v3.0.8...v3.1.0 https://github.com/shavitush/bhoptimer/releases/tag/v3.1.0 https://github.com/shavitush/bhoptimer/commit/0133300a400f70116776b71197fb2f4fb0a55e59

important things

main changelog stuff

Maybe I should've released some of this sooner as 3.0.9, but oh well.

Shoutout to sirhephaestus for watching an 18 hour playthrough of The Witcher 1 game with me and shoutout to aho.

v3.0.8 - asdf - 2021-10-04 - rtldg

v3.0.7...v3.0.8 https://github.com/shavitush/bhoptimer/releases/tag/v3.0.8 https://github.com/shavitush/bhoptimer/commit/b2a95095e788f86724ef463f9d8dfae1077c01c3

stuff

v3.0.7 - asdf - 2021-09-23 - rtldg

v3.0.6...v3.0.7 https://github.com/shavitush/bhoptimer/releases/tag/v3.0.7 https://github.com/shavitush/bhoptimer/commit/346d7f903c9118e3180dd6cc8936e0ed3f2ba597 https://github.com/shavitush/bhoptimer/commit/e7bf386d1401a98072b272de204fc13d2fc4fb8e (v3.0.7-1) (added with a single commit added for csgo handling of shavit_replay_botweapon) https://github.com/shavitush/bhoptimer/commit/32f0e50905cba03437a67552fdf088bfffc9f642 (v3.0.7-2) (added to fix !profile with no arguments saying it was broken)

stuff

v3.0.6 - asdf - 2021-08-21 - rtldg

v3.0.5...v3.0.6 https://github.com/shavitush/bhoptimer/releases/tag/v3.0.6 https://github.com/shavitush/bhoptimer/commit/c00ab666bedc92afdced75f89ce40ff8b2a1f129

v3.0.5 - asdf - 2021-08-20 - rtldg

v3.0.0...v3.0.5 https://github.com/shavitush/bhoptimer/releases/tag/v3.0.5 https://github.com/shavitush/bhoptimer/commit/5687095144b87c64bc32ec1e7f43baf408270eac https://github.com/shavitush/bhoptimer/commit/599b276e42b2468a28014015d36d637ca548c990 (v3.0.5-2) (replaced with zip with some more sql handle checks & a fix for the Reset checkpoints menu before you can fix it)

v3.0.4 - asdf - 2021-08-08 - rtldg

https://github.com/shavitush/bhoptimer/releases/tag/v3.0.0 https://github.com/shavitush/bhoptimer/commit/eab31036a4b90f7d49898933559877434f96a990

  • make mp_humanteam always apply
  • prevent zones from being placed inside another zone
  • fix grid snap visualization

v3.0.3 - asdf - 2021-08-08 - rtldg

https://github.com/shavitush/bhoptimer/releases/tag/v3.0.0 https://github.com/shavitush/bhoptimer/commit/8009dbab88cafeddd6fb3b9d0cf686c311e6fb52 (probably...)

  • added shavit_misc_resettargetname_main & shavit_misc_resettargetname_bonus to help with some more maps
  • trim lines in convar_class so potentially remove erring crlfs
  • reopen !replay menu only if still open
  • fix some checkpoint/gravity/timescale/speed related stuff
  • make mapname buffers all use PLATFORM_MAX_PATH
  • add missing parameters to function declaration
  • add bhop_space & bhop_crash_egypt to shavit-mapfixes.cfg
  • make {styletag} & {style} work for !replay bots again

v3.0.2 - asdf - 2021-07-31 - rtldg

https://github.com/shavitush/bhoptimer/releases/tag/v3.0.0 https://github.com/shavitush/bhoptimer/commit/8a8db13c4a74f9e9c0c22f2e4a5835432c9a85ed

  • fix error from gH_SQL being null in OnMapEnd after server restart

v3.0.1 - asdf - 2021-07-30 - rtldg

https://github.com/shavitush/bhoptimer/releases/tag/v3.0.0 https://github.com/shavitush/bhoptimer/commit/32658a029d0aa35ca646434a8518f700d62ac624

  • update eventqueuefix header
  • mark shavit-wr as required in notes
  • fix shavit_misc_hideteamchanges on css
  • make Shavit_OnDatabaseLoaded run after migration like it's supposed to

v3.0.0 - Fluffytail Edition - 2021-07-29 - rtldg

v2.6.0...v3.0.0 https://github.com/shavitush/bhoptimer/releases/tag/v3.0.0 https://github.com/shavitush/bhoptimer/commit/9adf78d311192f91ccf32edf9decb72fa1597313

(originally this was going to be v2.7.0 but it took too long and had too many changes so it became v3.0.0 and also the very_good_yes was deprecated with the bump to v3.0.0)

This update breaks plugins using natives with enum structs along with removing some natives. Recompile any plugin that uses shavit.inc. Also stylesettings_t was removed so anything that uses that will need to be changed, but it's easy to fix.

Also, make sure to post any errors or problems you find in the github issue tracker or in the #timer-support-here channel of the bhoptimer discord https://discord.gg/jyA9q5k

Update Notes TL;DR (the most notable things):

  • You can now make a total of 8 bonuses.
  • !r now goes to the most recent track. !main/!m was added to go to the main track.
  • Multiple replay bots can be spawned simultaneously. Also you can make replay bots that loop styles & tracks.
  • The !replay menu now has options to skip forwards, skip backwards, and play at 2x speed.
  • The stage times from the WR run will now be saved (if you add stage zones).
  • Support added for hermansimensen/eventqueue-fix to allow timescaling map events and help prevent some map exploits.
  • Postframes added to replays.
  • More efficient time-difference calculation possible with rtldg/sm_closestpos
  • Times should now be slightly more accurate by basing off tick-interval instead of frame-time.

Concommands

  • added sm_ccadd <steamid> and sm_ccdelete <steamid> to give ccname&ccmsg access via steamid instead of adding them with admin flags or something (#861). https://github.com/shavitush/bhoptimer/commit/19c5ccb7f38cc793f974a2c118c1c10ccc20e71a
  • sm_recalcall and sm_recalcmap should be faster now.
  • added sm_toggleadverts for clients.
  • Multiple bonus typo convenience commands added. sm_b1, sm_b2, etc through to sm_b8.
  • Multiple stage typo convenience commands added. sm_s1, sm_s2, etc through sm_s9.
  • !r now resets your timer back to the track you were previously on. !main/!m was added to move you back to the main track
  • sm_p has been changed to be an alias of sm_profile instead of noclip. You'll probably want to use sm_nc now.
  • sm_loadunzonedmap to load the next unzoned map from the maps folder (doesn't include workshop maps or sub-folders).
  • sm_save will now refresh an open checkpoint menu.

Convars

Misc

Timer configs

  • shavit-styles.cfg
  • shavit-zones.cfg
    • Zone beams can now be changed for each zone type.
      • beam - the custom beam path for the zone type.
      • vanilla_sprite - whether to use the default sprite or the timer's sprite.
      • no_halo - whether the zone should have a halo drawn for it.
    • Added beam_ignorez to draw zone beams through walls (#618)
  • shavit-chat.cfg
    • added w (WR Count) and W (rank out of WR holders) options to the ranks filtering
    • added {pts}, {wrs}, and {wrrank} for chat ranks
  • shavit-replay.cfg
    • "Looping Bots" section added to configure looping bots.
    • You can grab the default config from here:
      // "enabled" - whether the looping bot will spawn in when there's replay data
      // "tracks" - semicolon seperated list of track numbers to loop through. 0 (main), 1-8 (bonus)
      // "styles" - semicolon seperated list of style numbers to loop through.
      "Looping Bots"
      {
      "Main Normal Bot"
      {
      "enabled" "1"
      "tracks" "0"
      "styles" "0"
      }
      "Main Segmented Bot"
      {
      "enabled" "1"
      "tracks" "0"
      "styles" "7"
      }
      "Other Styles"
      {
      "enabled" "1"
      "tracks" "0"
      "styles" "1;2;3;4;5;6;8;9;10;11;12;13;14;15;16"
      }
      "Bonus Normal Bot"
      {
      "enabled" "1"
      "tracks" "1"
      "styles" "0"
      }
      "Shit Bonuses Bot"
      {
      "enabled" "1"
      "tracks" "2;3;4;5;6;7;8"
      "styles" "0"
      }
      "TAS Bot"
      {
      "enabled" "0"
      "tracks" "0;1;2;3;4;5;6;7;8"
      "styles" "10"
      }
      "Dumb Styles Bot"
      {
      "enabled" "0"
      "tracks" "0"
      "styles" "4;6"
      }
      }
  • shavit-mapfixes.cfg.
    • Sets convars on certain maps.
    • Currently used to adjust prebuilt-zone visual-offsets on a few maps and to disable shavit_misc_resettargetname to the timer doesn't break some maps.

API

  • Constants, enums, and defines:
    • Added MAX_STAGES
    • There's 8 bonuses now. Track_Bonus (1) through Track_Bonus_Last (8)
    • Removed Replay_Legacy
    • Added Replay_Dynamic and Replay_Prop
    • enums ReplayStatus and ReplayBotType have been de-typed so the values can be used as ints.
    • REPLAY_FORMAT_SUBVERSION is now up to 0x08 (+4)! Progress!
  • Added natives:
    • Shavit_GetStyleSetting, Shavit_GetStyleSettingInt, Shavit_GetStyleSettingBool, Shavit_GetStyleSettingFloat, Shavit_HasStyleSetting, Shavit_SetStyleSettingFloat, Shavit_SetStyleSettingBool, and Shavit_SetStyleSettingInt
      • Any key in configs/shavit-styles.cfg can now be grabbed with these
      • Probably will be used to replace specialstring usage eventually
    • Shavit_WRHolders, Shavit_GetWRHolderRank.
    • Shavit_GetTimesTeleported - Eventually the value from this will be stored in the database.
    • Shavit_SetStart / Shavit_DeleteSetStart.
    • Shavit_GetClosestReplayStyle - Returns the style currently being used for the client's time/velocity difference.
    • Shavit_SetClosestReplayStyle - Can be used to change the style used for the client's time/velocity difference to compare a Normal time to a Segmented time for example.
    • Shavit_GetClosestReplayVelocityDifference - Returns the velocity difference between the client and closest position of the target replay.
    • Shavit_GetStyleStringsStruct - Fills a stylestrings_t as an alternative to Shavit_GetStyleStrings.
    • Shavit_GetChatStringsStruct - Fills a chatstrings_t as an alternative to Shavit_GetChatStrings.
    • Shavit_GetAvgVelocity - Retrieves the player's average (2D) velocity throughout their run.
    • Shavit_GetMaxVelocity - Retrieves the player's highest (2D) velocity throughout their run.
    • Shavit_DeleteWR
    • Shavit_IsReplayEntity - Returns true if the entity is a replay bot client or replay bot physics prop.
    • Shavit_GetReplayStarter - Returns the client who started the replay entity.
    • Shavit_GetReplayButtons - Returns the buttons for the replay's current tick. Added since otherwise there'd be no way to grab a Replay_Prop's buttons. Also angle-difference so we can see it in !keys.
    • Shavit_GetReplayCacheFrameCount - Retrieves the frame count from the replay bot's frame_cache_t.
    • Shavit_GetReplayCacheLength - Retrieves the replay length from the replay bot's frame_cache_t.
    • Shavit_StartReplayFromFrameCache - Can be used to start replay bots with a custom frames. Useful for playing a replay downloaded from a global replay database or something.
    • Shavit_StartReplayFromFile - Can be used to start replay bots with a custom frames. Useful for playing a replay downloaded from a global replay database or something.
    • Shavit_GetClientLastStage - Retrieves the clients highest stage number in their current run.
    • Shavit_GetStageWR - Retrieves the WR run's stage time (if it exists).
    • Shavit_GetLoopingBotByName - Used to find a looping replay-bot client-index from the loop-config name.
  • Stocks:
    • GetSpectatorTarget added to shavit.inc. Target might NOT be a client (like when watching a Replay_Prop)
    • GetTrackName added to shavit.inc.
    • SteamIDToAuth added to shavit.inc. Converts STEAM_0:1:61 and [U:1:123] to 123.
      • Now used by sm_wipeplayer, sm_ccadd, and sm_ccdelete.
  • Changed natives:
    • Shavit_OnStart can NOT stop StartTimer anymore. Use Shavit_OnStartPre to stop StartTimer.
    • Shavit_HijackAngles now has a int ticks parameter.
    • Shavit_GetWRCount now has parameters for style and track.
    • Shavit_GetClosestReplayTime(client, style, track) -> Shavit_GetClosestReplayTime(client)
    • void Shavit_GetReplayBotFirstFrame(int style, float &time) -> float Shavit_GetReplayBotFirstFrame(int entity)
    • Shavit_GetReplayBotIndex(int style) -> Shavit_GetReplayBotIndex(int style, int track)
    • Shavit_GetReplayBotCurrentFrame(int style) -> Shavit_GetReplayBotCurrentFrame(int entity)
    • Shavit_GetReplayTime(int style, int track) -> Shavit_GetReplayTime(int entity)
    • Shavit_StartReplay now returns an replay entity index (int) instead of a bool.
    • Shavit_GetReplayBotFirstFrame renamed to Shavit_GetReplayBotFirstFrameTime
    • Shavit_GetReplayPreFrame renamed to Shavit_GetReplayPreFrames
    • Shavit_GetReplayPostFrame renamed to Shavit_GetReplayPostFrames
    • Shavit_GetReplayCachePreFrame renamed to Shavit_GetReplayCachePreFrames
    • Shavit_GetReplayCachePostFrame renamed to Shavit_GetReplayCachePostFrames
    • Shavit_GetPlayerPreFrame renamed to Shavit_GetPlayerPreFrames
    • Shavit_GetTimeOffset replaced with to Shavit_GetZoneOffset
  • Changed Structures:
    • timer_snapshot_t now includes fAvgVelocity, fMaxVelocity, fTimescale, iZoneIncrement, and fTimescaledTicks.
      • fTimeOffset was replaced with fZoneOffset.
    • cp_cache_t now includes iSteamID, aEvents, aOutputWaits, and vecLadderNormal
      • iTimerPreFrames removed.
  • Removed Structures:
    • stylesettings_t - Use some of the new GetStyleSetting natives.
  • Removed natives:
    • Shavit_GetStyleSettings - Use some of the new Shavit_GetStyleSetting* natives instead.
    • Shavit_GetGameType - Use GetEngineVersion instead.
    • Shavit_GetDB - Use Shavit_GetDatabase instead.
    • Shavit_GetTimer - Use different natives.
    • Shavit_GetWRTime - Use Shavit_GetWorldRecord instead.
    • Shavit_GetPlayerPB - Use Shavit_GetClientPB instead.
    • Shavit_GetPlayerTimerFrame
    • Shavit_SetPlayerTimerFrame
  • Changed forwards:
    • Shavit_OnUserCmdPre no longer has the stylesettings_t parameter. Use some of the Shavit_GetStyleSetting* natives with the option names from shavit-styles.cfg instead. Examples: Shavit_GetStyleSettingBool(style, "unranked") or Shavit_GetStyleSettingInt(style, "prespeed")
    • Shavit_OnTimeIncrement no longer has the stylesettings_t parameter.
    • Shavit_OnTimeIncrementPost no longer has the stylesettings_t parameter.
    • Shavit_OnFinish gained float avgvel, float maxvel, int timestamp
    • Shavit_OnFinish_Post gained float avgvel, float maxvel, int timestamp
    • Shavit_OnFinishMessage now has a message2 parameter that is used to print an extra message to spectators and the player. Curently prints avg/max velocity and perf percentage. https://github.com/shavitush/bhoptimer/commit/435a23f065cf45ca97248ae80ad84ae64c3fee9d
    • Shavit_OnWorldRecord gained float avgvel, float maxvel, int timestamp
    • Shavit_OnTopLeftHUD will now run more often so plugins like https://github.com/rtldg/wrsj can show the SourceJump WR in the top-left all the time.
  • Added forwards:
    • Shavit_ShouldSaveReplayCopy - Called when a player finishes a run and can be used to save a copy of the replay even if it is not a WR.
    • Shavit_OnStartPre - Used to potentially block StartTimer from starting a player's timer. Previously Shavit_OnStart would've been used.
    • Shavit_OnReplaySaved - Called when a replay (WR or copy) has been saved. SourceJump replay uploader should use this now

v2.6.0 - Community Update Edition - 2020-11-23 - kidfearless

v2.5.7a...v2.6.0 https://github.com/shavitush/bhoptimer/releases/tag/v2.6.0 https://github.com/shavitush/bhoptimer/commit/06addf326f155b05f63acec78b816406a3aaaad5 (v2.6.0) https://github.com/shavitush/bhoptimer/commit/cbda66670072ee3dddeb4e309b6ebfaea5291d7e (v2.6.0-1) -- Included fix for Shavit_SaveCheckpoint native

This update breaks plugins using natives with enum structs. To fix simply recompile broken plugins with latest shavit.inc

DHooks is no longer an optional requirement for the timer. You will need it installed in order to use the new precise ticking method

  • GuessBestMapName moved to shavit.inc
  • Tidied up shavit-chatsettings.cfg loading to throw a better exception if not present(Thanks gammacase)
  • Added accountid validation to replay deletion (Thanks deadwinter)
  • PB's are now reset on players if they are connected when their replay is deleted.
  • Times are now incremented after a players movement has been processed in order to more accurately track times and prevent exploits.
  • HUD default values can now be set from a convar.
  • Turn binds now show up in keys panel
  • Players can now enable seeing their rank for the given time in the top left hud.
  • Checkpoints are now stored in an arraylist and can be deleted individually.
  • Radar and flash are now removed constantly to prevent being displayed again.
  • Stamina is now reset inside OnRestart as well.
  • Added OnPlay forward to allow for dynamic wr sounds.
  • Spectate bot if using the !replay command while alive.
  • Implemented a fix for rounds restarting in single round servers into shavit-timelimit.
  • Added enable/disable convars to minor shavit plugins.
  • fix using -1 for shavit_misc_persistdata
  • fix error that happens if you 'sm_tele 0' with no checkpoints
  • don't set FL_ATCONTROLS when dead/spec so you can freecam while paused
  • Added ProcessMovement forwards for easier access.

Big thanks to Gammacase, rtldg, nairdaa, deadwinter, carnifex, and SaengerItsWar for the majority of contributions to the development of the timer this update.

Convars

  • shavit_core_useoffsets - Calculates more accurate times by subtracting/adding tick offsets from the time the server uses to register that a player has left or entered a trigger.
  • shavit_hud_timedifference - Enabled dynamic time differences in the hud.
    • Recommended to be left off.
  • shavit_hud_specnamesymbollength - Maximum player name length that should be displayed in spectators panel.
  • shavit_hud_default - Default HUD settings as a bitflag
    • see description for bitflag values.
  • shavit_hud2_default - Default HUD2 settings as a bitflag
    • see description for bitflag values.
  • shavit_sounds_enabled - Enables/Disables functionality of the shavit sounds plugin.
  • shavit_timelimit_gamestartfix - If set to 1, will block the round from ending because another player joined. Useful for single round servers.
  • shavit_timelimit_enabled - Enables/Disables functionality of the shavit timelimit plugin.
  • shavit_replay_timedifference_cheap - Disabled 1 - only clip the search ahead to shavit_replay_timedifference_search 2 - only clip the search behind to players current frame 3 - clip the search to +/- shavit_replay_timedifference_search seconds to the players current frame.
    • Recommended value if set is 3.
  • shavit_replay_timedifference_search - Time in seconds to search the players current frame for dynamic time differences 0 - Full Scan
    • Note: Higher values will result in worse performance
    • Recommended value if set is 10.

API

  • Changed Structures:
    • timer_snapshot_t now contains time and distance offsets.
  • Changed natives:
    • Shavit_DeleteReplay now passes in the accountid to be validated against, 0 to skip.
  • Added natives:
    • Shavit_GetStageZone - Retrieve the zone ID for a given stage number. Will return exception if stage number doesn't have a zone.
    • Shavit_SetClientPB - Sets the cached pb directly for the given client, style and track.
    • Shavit_GetClientCompletions - Retrieves the completions of a player.
    • Shavit_StartReplay - Starts a replay given a style and track.
  • Changed forwards:
    • Shavit_OnWRDeleted - Added accountid of deleted record.
  • Added forwards:
    • Shavit_OnDelete - Called when a player deletes a checkpoint.
    • Shavit_OnPlaySound - Called before a sound is played by shavit-sounds.
    • Shavit_OnProcessMovement - Called before the server & timer handle the ProcessMovement method.
    • Shavit_OnProcessMovementPost - Called After the server handles the ProcessMovement method, but before the timer handles the method.

v2.5.7a - asdf - 2020-07-07 - kidfearless

v2.5.6...v2.5.7a https://github.com/shavitush/bhoptimer/releases/tag/v2.5.7a https://github.com/shavitush/bhoptimer/commit/7567cde52df2adf0461984db72fb60531c331f8e

This update breaks plugins using natives with enum structs. To fix simply recompile broken plugins with latest shavit.inc

If you have performance issues after this update, disable dynamic time difference.

  • Added preruns to replays. Thanks @deadw1nter
  • Added dynamic time difference. Thanks again rellog, and @deadw1nter
  • Implemented hintfix for csgo players to reduce memory leaks.
  • Fix for adminmenu late load or reload. Thanks @Kxnrl
  • Added jump_multiplier and jump_bonus to shavit-styles
  • Increased dynamic memory size
  • Syntax fix for MySQL 8.0
  • Fixed perf jump detection being slightly off

Convars

  • shavit_hud_csgofix - Apply the csgo color fix to the center hud? This will add a dollar sign and block sourcemod hooks to hint message
  • shavit_replay_preruntime - Time (in seconds) to record before a player leaves start zone. (The value should NOT be too high)
  • shavit_replay_prerun_always - Record prerun frames outside the start zone?
  • shavit_misc_restrictnoclip - Should noclip be be restricted?
    • 0 - Disabled
    • 1 - No vertical velocity while in noclip in start zone
    • 2 - No noclip in start zone
  • shavit_zones_box_offset - Offset zone trigger boxes by this many unit
    • 0 - matches players bounding box
    • 16 - matches players center

API

  • Added natives:
    • Shavit_GetReplayStatus - Gets the replay status.
    • Shavit_SaveCheckpoint - Saves a new checkpoint and returns the new checkpoint index.
    • Shavit_GetCurrentCheckpoint - Gets the current checkpoint index.
    • Shavit_SetCurrentCheckpoint - Sets the current checkpoint index.
    • Shavit_GetPlayerPreFrame - Returns the number of preframes in the players current run.
    • Shavit_SetPlayerPreFrame - Sets player's preframe length.
    • Shavit_GetClosestReplayTime - Gets time from replay frame that is closest to client.
    • Shavit_GetPlayerTimerFrame - returns the number of timer preframes in the players current run.
    • Shavit_SetPlayerTimerFrame - Sets player's timer preframe length.
  • Added forwards:
    • Shavit_OnCheckPointMenuMade - Called after the checkpoint menu has been made and before it's sent to the client.
    • Shavit_OnCheckpointMenuSelect - Called when before a selection is processed in the main checkpoint menu.
    • Shavit_OnTimescaleChanged - Called when a clients dynamic timescale has been changed.

v2.5.6 - asdf - 2020-01-23 - kidfearless

v2.5.5a...v2.5.6 https://github.com/shavitush/bhoptimer/releases/tag/v2.5.6 https://github.com/shavitush/bhoptimer/commit/c8467630ab94c295a740270b888f3d7a68ef54b7

This update contains changes that may alter your plugin configs. Be sure to backup your plugin configs beforehand.

This update contains changes to the shavit-zones translation files, as well as the zones config files. Update accordingly.

  • Added stage zone to shavit-zones. Accessible via sm_stages and sm_stage.
  • Moved convars into an auto-updating convar methodmap.
  • Moved cp_cache_t enum struct into shavit.inc for native usage.
  • Added dynamic timescales for styles like TAS.
  • Fixed Shavit_GetReplayBotCurrentFrame pointing to the wrong native callback.
  • Selecting an unfinished map from the !profile menu, will attempt to nominate it for the client.
  • Removed extra bracket. Thanks @SaengerItsWar
  • Permission flags inside shavit-styles.cfg no longer need a command override to work.
  • Chat messages from sm_tele are now suppressed.

Console Variables

  • shavit_misc_bhopsounds - Should bhop (landing and jumping) sounds be muted? 0 - Disabled 1 - Blocked while !hide is enabled 2 - Always blocked

API

  • Added natives:
    • Shavit_GetTotalCheckpoints - Gets the total number of CPs that a client has saved.
    • Shavit_GetCheckpoint - Gets CP data for a client at the specified index. See cp_cache_t.
    • Shavit_SetCheckpoint - Sets CP data for a client at specified index. See cp_cache_t.
    • Shavit_TeleportToCheckpoint - Teleports client to the checkpoint at the given index.
    • Shavit_ClearCheckpoints - Clears all saved checkpoints for the specified client.
    • Shavit_OpenCheckpointMenu - Opens checkpoint menu for a client.
    • Shavit_SetClientTimescale - Sets the clients dynamic timescale. -1.0 to use the timescale of the client's style.
      • Note: Values above 1.0 won't scale into the replay bot.
    • Shavit_GetClientTimescale - Gets the clients dynamic timescale, or -1.0 if unset.
  • New forward behavior:
    • Shavit_OnTeleport - now includes the checkpoint index that was teleported to.
    • Shavit_OnSave - now includes the index the checkpoint was saved to. As well as whether that checkpoint triggered an overflow and wiped a previous checkpoint.
    • Shavit_OnEnterZone - now passes the zone data for stage referencing.
    • Shavit_OnLeaveZone - now passes the zone data for stage referencing.
  • Added forwards:
    • Shavit_OnTrackChanged - Called when a player changes their bhop track.
    • Shavit_OnReplaysLoaded - Called when all replays files have been loaded.
    • Shavit_OnTimescaleChanged - Called when a clients dynamic timescale has been changed.

v2.5.5a - asdf - 2019-08-08 - shavit

v2.5.5...v2.5.5a https://github.com/shavitush/bhoptimer/releases/tag/v2.5.5a https://github.com/shavitush/bhoptimer/commit/979c911a268f22bd94c930ed7f7722bd8426b326

As usual, backup your database before ANY update in case something breaks.

If you're suspicious of server's database being slower than it should be, after updating, follow this procedure:

Note that this only applies to installations where bhoptimer was first installed before the release of v2.5.5.

  1. Run the following queries in your database:
# Note: if you use a table prefix, add it in front of the following keywords: playertimes, pt_auth, chat, ch_auth
ALTER TABLE `playertimes` DROP FOREIGN KEY `pt_auth`;
ALTER TABLE `chat` DROP FOREIGN KEY `ch_auth`;
  1. Disable the shavit-rankings module if it's in use.
  2. Start the server, lock it with a password so no one can enter it.
  3. Run the command sm_migration all with root access.
  4. Wait up to 1 minute.
  5. Restart the server. If you desire to use the rankings module, enable it again.

Your database should be MUCH faster if it was misconfigured due to failed migrations.


  • Improved measuring for perfect jumps (scroll styles).
  • Added failsafe to prevent data loss when players finish maps when the database is locked.
  • Fixed !end not working on maps with trigger zones.
  • Fixed trigger zones not working if the running map is the first one since server start.
  • Fixed replay plugin causing connect/disconnect messages to not show up.
  • Added sm_migration command to re-apply database migrations if needed.
  • Added logging when wiping player data.
  • Added warning message when trying to wipe player data for invalid SteamIDs.
  • Minor database optimizations.
  • Fixed foreign keys not being removed/added properly for tables with prefixes, in database migrations.

Console Variables

  • shavit_misc_wrmessages - change this to set the amount of messages that show up when someone sets a WR. 0 to completely disable the message.

API

  • Added natives: (thanks @kidfearless!)
    • Shavit_GetClientFrameCount
    • Shavit_GetReplayFrames
  • Added forwards:
    • Shavit_OnFinishMessage - allows you to modify the finish messages in chat.

v2.5.5 - asdf - 2019-07-14 - shavit

v2.5.4...v2.5.5 https://github.com/shavitush/bhoptimer/releases/tag/v2.5.5 https://github.com/shavitush/bhoptimer/commit/e4c8be08bc18884236b1b5842df58b83990f0f69

This update features automatic database migrations. Backup your database and read this gist before updating.

(gist enclosed in this spoiler text below:)

31/05/2019 if you are running v2.5.5 or above (from very_good_yes branch), there's some good news. unless you're on sqlite of course. if you're on sqlite, you might have to stick to the same version, or recreate your database i've added database migration and lots of optimizations, you don't need to do them on your end because the plugin will automatically do them for you! *however*, the first batch of database migrations contains 12 migrations, which is a lot. some of them take a while to execute, and some will be pretty much instant
because of that, when you upgrade to from v2.5.4 or older, to v2.5.5 or newer i ask you to follow the following procedure:

0. **DO A DATABASE BACKUP!! YOUR DATABASE MIGHT BREAK IF THE MIGRATION IS BEING INTERRUPTED AND YOU WILL LOSE DATA!!**
1. if you have more than one server running the same database, take them all offline until this process is done
2. close access to the game server that will perform the database migration. via password, server maintenance plugins, firewall, or whatever solution you can think  of
3. update the game server to the latest version of bhoptimer, and start it. the server console will show "applying migration..." lines. let it run, it can take from 5 sec up to even 10 minutes, depending on the size of your database and your server's specs
4. when the migration is done, you should see a `migrations` table in your database with entries from 0 all the way to 11 (as of v2.5.5. newer versions might have more). if you see this, it means that the migration is completed
5. if the migration is completed, you can shut down the server, remove the password and put it back online :)

frequent issues when migrating the database:
```
Timer (zone refresh) SQL query failed. Reason: Unknown column 'flags' in 'field list'
```
- this is fine. the error happens because the zones plugin has no way of knowing if the migration has happened already or not. it should go away right after finishing the migration

```
Timer (rankings, update all points) error! Reason: Incorrect integer value: '[U:1:steamid]' for column ..steamid at row X
```
- the database migration was interrupted or you haven't closed access to the server while migrating! run it again starting from step 1. i hope you have a backup, otherwise this will be a pain in the ass to fix and i will not manually fix your broken database, sorry.

if you notice anything weird with the migration, let me know

Somewhat big update. I'm unmotivated recently so it'll probably be a while until next one.

  • prespeed setting in style config now supports the value of 2. If it's set to 2, the value of shavit_core_nozaxisspeed will be respected by the style.
  • Fixed an error that occurs when someone finishes a map without having any sound in the "noimprovement" section.
  • Fixed record cache issues when maps have more than 1000 records combined between all styles/modes.
  • After opening the KZ menu manually, it will be kept open unless interrupted by other menus.
  • Fixed points recalculation for long map names.
  • Fixed SQL query issues when using table prefix.
  • Fixed foreign key constraints issues when running multiple bhoptimer servers on the same database.
  • Added new CS:GO radio commands to the radio block list.
  • Split replay loaders for the different kinds of replay formats. (technical change, helps me maintain the code)
  • Fixed the very first frame of replays from version 1.4b and below not being played.
  • Added shavit_rankings_llrecalc cvar, see the section below.
  • Optimized chat plugin to not query the database for data saving unless it is needed.
  • Added database migrations! Refer to my gist about it.
  • Optimized the database structure by A LOT. Wait a while (depends on how big your database is) after starting the server, after updating. You should wait at least 30 min for big databases before restarting the server.
  • Added the ability to force invisible zones to be shown the players. The use case is making glitch zones visible to players while not doing it for all of them.
  • Added custom sv_airaccelerate zones.
  • Changed the behavior of No Speed Limit zones to Custom Speed Limit. All old zones are unlimited speed limit.
  • Added GitHub Sponsors. Sponsoring itself is not usable right now because I'm not accepted yet though.
  • Fixed "weapon is not owned by client " error.
  • Added tracking for map completions. It is shown in the submenu of a record's details.
  • Added "simplerladders", see cvar section.
  • Optimized rankings plugin to not query the database for recalculations more times than needed.
  • Split database handles per-plugin instead of using the same connection for all of them.
  • Fixed sync for HSW. Thanks @Nairdaa!

Console Variables

  • shavit_rankings_llrecalc - Maximum amount of time (in minutes) since last login to recalculate points for a player. sm_recalcall does not respect this setting. 0 - disabled, don't filter anyone. This setting optimizes recalculation time by a lot.
  • shavit_core_simplerladders - Allows using all keys on limited styles (such as sideways) after touching ladders. Touching the ground enables the restriction again.

v2.5.4 - asdf - 2019-04-15 - shavit

v2.5.3...v2.5.4 https://github.com/shavitush/bhoptimer/releases/tag/v2.5.4 https://github.com/shavitush/bhoptimer/commit/88b8b9a0799e95ac4680c20786d3b412f4a6d788

This is a hotfix update with some changes requested shortly after the v2.5.3 update.

  • Added force_groundkeys style property. It forces the key blocking settings even when on ground. e.g. enabling this on W-Only will not allow prestrafing with the A/D keys.
  • Fixed an issue that caused !r to not show up the menu that has "your timer will stop" warning.
  • Slight reorganization the checkpoints menu. I moved the reset button one item below, and it now has a confirmation prompt when you try to reset your checkpoints.
  • Fixed multiple issues with the KZ menu. Additionally, it will now not keep persisting when manually closed.
  • Fixed an issue that caused autobhop WR submenus show the perfect jump %.
  • Fixed a query error with the !rr command on servers running MySQL 5.7 and ONLY_FULL_GROUP_BY. Lower versions, and MariaDB servers are unaffected.

v2.5.3 - asdf - 2019-04-14 - shavit

v2.5.2...v2.5.3 https://github.com/shavitush/bhoptimer/releases/tag/v2.5.3 https://github.com/shavitush/bhoptimer/commit/2a1914010c943e8cfc4e3c5cfbcf9f22de2c052c

  • Added pause button in KZ CP menu.
    • In addition, the KZ CP menu now persists and will re-open in case it disappears.
  • Fixed error when a player uses !top before the rankings have been calculated.
  • Removed the pointless round restarting logic in the Dynamic Timelimit module.
  • Made the default method for zoning to be aiming.
  • Added warning that shows up before using functionalities that can stop the timer when your time passes a defined number of seconds. See the new added console variable shavit_misc_stoptimerwarning. This is triggered on noclip/stop and style changing commands.
  • Added "noimprovement" sound config file. The sound will play if you finish the map, but not beating your personal best.

Console Variables

  • shavit_misc_stoptimerwarning - the amount of seconds someone's timer needs to have to receive the "your timer will be stopped" warning upon using !stop, !nc or changing their style.

API

  • Added natives:
    • Shavit_CanPause - determines whether a player is able to pause or not. A value of 0 means that they can pause or resume their timer. Otherwise, this native retrieves flags: CPR_ByConVar, CPR_NoTimer, CPR_InStartZone, CPR_NotOnGround. Sample usage:
if((Shavit_CanPause(client) & CPR_ByConVar) > 0)
{
    // this code will be executed if the pause cvar is disabled
}
  • New native behavior:

    • Shavit_ResumeTimer - now has a second parameter, teleport. True will teleport the player to the position they paused at.
  • Added forwards:

    • Shavit_OnTeleport - called upon teleporting with a checkpoint
    • Shavit_OnStopPre - called when the timer is stopping. Ignored when Shavit_StopTimer is called with the bypass parameter set to true. Returning false here will prevent the timer from stopping.

v2.5.2 - asdf - 2019-03-29 - shavit

v2.5.1...v2.5.2 https://github.com/shavitush/bhoptimer/releases/tag/v2.5.2 https://github.com/shavitush/bhoptimer/commit/5fb84e6ace5fcd8e39a409550d167e7e1501dc60

  • Fixed harmless error that occurs when a player is disconnecting before getting fully in-game.
  • Fixed being able to break records by -0.000. Might or might not work. Probably does though.
  • Added integrity checks to replay files.
  • Fixed minor memory leak caused by loading corrupted replay files.

v2.5.1 - asdf - 2019-03-29 - shavit

v2.5.0...v2.5.1 https://github.com/shavitush/bhoptimer/releases/tag/v2.5.1 https://github.com/shavitush/bhoptimer/commit/c631f2f549beef5bc5ecad664236c51f03218d65

Highly recommended to update if you're on v2.5.0.

  • Fixed a game breaking exploit related to persisted data.

v2.5.0 - asdf - 2019-03-29 - shavit

v2.4.1...v2.5.0 https://github.com/shavitush/bhoptimer/releases/tag/v2.5.0 https://github.com/shavitush/bhoptimer/commit/95d9cad3091003bb0da4c40c92522635604bb233

  • Added enabled, inaccessible and kzcheckpoints style modifiers.
    • enabled - 0 to disable a style, -1 to disable it from being shown in all menus.
    • inaccessible - disables manual switching to the style. You may only switch to such a style using external modules (use case is TP mode for KZ).
    • kzcheckpoints - enables a new mode for checkpoints. They don't modify the timer, you don't keep your speed and they get reset as soon as you start a new run.
  • Added persisting for timer data (also known as "saveloc") on player disconnection.
  • Optimizations to database structure have been applied. If your initial installation was prior to this release, please follow the database maintenance wiki page's instructions.
  • Optimizations to database queries have been applied as well.
  • Improved cvar enforcing in replay plugin.
  • Re-added the "No Speed Limit" text to CS:S HUD.
  • Fixed foreign key error in chat module.
  • Fixed errors in chat module when running SQLite.
  • Changed default zone modifier setting to 16 units.
  • !replay now opens the menu at the same page if playback fails.
  • Fixed a bug that allowed teleporting to deleted checkpoints.
  • Fixed a rare bug with replay playback.
  • Fixed WR counter being inaccurate.
  • Fixed compatibility with ONLY_FULL_GROUP_BY database servers.
  • Removed very old table migration code due to it being slow.
  • Now !style shows bonus rank 1 times if you're on bonus track.
  • Added a decrease button for grid snap during zone setup.
  • Added !mapsdone and !mapsleft commands.
  • Maps left menu now shows map tier.
  • Removed old delete function from admin menu.
  • Fixed mp_humanteam setting being ignored.
  • Changed zone setup to be easier for bonus zones.
  • Transition to last frame of the replay will be smoother now.
  • Fixed replay HUD bug for styles with speed multipliers.
  • Fixed issues with the replay counter for HSW.
  • Revamped spawn point addition. It also supports bonus track now.
  • Fixed rare bug caused by slow databases.

Console Variables

  • shavit_misc_hidechatcmds - hides all commands in chat.
  • shavit_misc_persistdata - controls minimum time (in seconds) to persist timer data for a player that disconnects.

API

  • Added forwards:
    • Shavit_OnTeleport - called upon teleporting with a checkpoint
    • Shavit_OnSave - called upon saving a checkpoint

v2.4.1 - asdf - 2019-03-08 - shavit

v2.4.0...v2.4.1 https://github.com/shavitush/bhoptimer/releases/tag/v2.4.1 https://github.com/shavitush/bhoptimer/commit/a0d205247a5bde6ea7edaf749af4dcad7b21c017

  • Fixed exploit related to checkpoints.
  • Added sm_wipeplayer command.
  • Added style ordering to menus. Use ordering style config to order styles without changing their IDs.
  • Added the ability to stop replay playback as the requester.
  • *Improved logging of single-record deletion.
  • !replay command moves you to spectator, and refers you to the replay bot upon use now.
  • Added PB split to HUD. The top-left HUD will split to two sections; "best" and "PB".
  • Added map tier to start zone HUD.
  • Fixed unintended behavior with checkpoints menu.
  • Added the {rank} format specifier to custom clan tag console variable.
  • !r shows the track in the message if start zone doesn't exist.
  • Fixed HUD showing wrong time when playing with timescale.
  • Fixed checkpoints not properly setting targetname and classname.
  • Fixed error when certain commands are used from the server's console. This fix allows them to work now.
  • Changed !deleteall so you can delete all records per-style rather than just per-track.
  • Fixed an issue where deleted replays would not be overwritten.
  • Added cooldown for replay playback/stop for non-admin users.
  • Fixed replay bots breaking at certain interactions; such as stopping playback between the replay's end and its nullification and then requesting new playback.
  • Improved smoothness of all replay playback.
  • Fixed a bug that caused the last frame of replays seem out-of-place.

API

  • Added natives:

    • Shavit_ChangeClientStyle
    • Shavit_ReloadLeaderboards
    • Shavit_DeleteReplay
    • Shavit_GetOrderedStyles
    • Shavit_IsPaused
  • Added forwards:

    • Shavit_OnRankAssigned

A relatively big update considering it's a minor version, have fun!

v2.4.0 - asdf - 2019-02-02 - shavit

v2.3.6...v2.4.0 https://github.com/shavitush/bhoptimer/releases/tag/v2.4.0 https://github.com/shavitush/bhoptimer/commit/1cd4b4c9c364cdade32456e7caa65ebc07528bd9

Note: bhoptimer now requires SourceMod 1.10 or above.

  • Revamped HUD for CS:GO. CS:GO HUD has been technically modified so it is easier to manipulate for developers.
  • Restructured the whole plugin to use enum struct. Code should be easier to understand. As far as I'm aware other modules should not break. However, they will need to be modified if a recompilation is desired.
  • Fixed chat colors in CS:GO.
  • Deprecated Shavit_GetPlayerPB and Shavit_GetWRTime. Use Shavit_GetClientPB and Shavit_GetWorldRecord respectively.
  • Added shavit_rankings_weighting cvar. This allows you to control the weighting in rankings. Set this to 1.0 to disable weighting and instead give users the exact amount of points shown in record submenus.
  • Changed users.name collation to utf8mb4_general_ci. This is not an automatic migration and will require manual action for existing installations.
  • Added shavit_core_nochatsound to get rid of the chat ticking sound from timer messages.
  • Fixed exploit in chat plugin that allowed breakage of the chat in CS:S.
  • Fixed RTLer not working in chat plugin.
  • Fixed attempts to teleport a kicked/non spawning central bot resulting in logged errors and paused script execution.
  • Changed !hud so it is easier to understand for the end-user. The menu now also has new settings that allow you to disable the main HUD's components individually.
  • Added commands to toggle frequently changed HUD components. !keys, !master, !center, !zonehud, !hideweapon, !truevel
  • Fixed exploit allowing users to submit segmented runs as if they were done in realtime.
  • Fixed server crash exploit with checkpoints.

v2.3.6 - asdf - 2018-12-23 - shavit

v2.3.5...v2.3.6 https://github.com/shavitush/bhoptimer/releases/tag/v2.3.6 https://github.com/shavitush/bhoptimer/commit/98d9b29c1da86bf22df5586428cc5c006c0403c1

bhoptimer v2.4.x and above will require SourceMod 1.10 (6371 or newer)

  • Fixed out of bounds error in Shotgun Shot sound hook
  • Prioritized custom spawns > server zones > prebuilt zones

v2.3.5 - asdf - 2018-12-07 - shavit

v2.3.4...v2.3.5 https://github.com/shavitush/bhoptimer/releases/tag/v2.3.5 https://github.com/shavitush/bhoptimer/commit/f527455a2d66f5ec278a3148bb9bda0be3726ecd

  • Fixed some stats being off (map completion, ranks etc)
  • Fixed targetnames and classnames not saving properly in checkpoints
  • Updated run speed offset for CS:GO
  • Made color formatting in shavit-chatsettings.cfg possible

v2.3.4 - Pausing development for a while - 2018-11-03 - shavit

v2.3.3...v2.3.4 https://github.com/shavitush/bhoptimer/releases/tag/v2.3.4 https://github.com/shavitush/bhoptimer/commit/398c9ee84e0c481e29ec1cfd3e2cf55ec7fca36e

  • Added practice mode alert toggle to !hud.
  • Fixed several issues with CP menu prev/next buttons.
  • Replaced halftime style setting with timescale. I added backwards compatibility. See style config for usage example.
  • Fixed replay unsyncing for a short time when hitting thin teleports while crouching.
  • Optimized replay file writing to be much faster.
  • Fixed issues with unicode inputs for username/chat settings. Might need to manually change the column collation to utf8mb4_unicode_ci.

v2.3.3 - asdf - 2018-10-10 - shavit

v2.3.2...v2.3.3 https://github.com/shavitush/bhoptimer/releases/tag/v2.3.3 https://github.com/shavitush/bhoptimer/commit/b8d0522e96e8867402915d5aa55e9f5fbf0b7ea5

  • Fixed rankings SQL issues with optimized MySQL/MariaDB configs.
  • Fixed PB in HUD showing rank 0 when it's rank 1.
  • Removed code that is now unnecessary from shavit-sounds.
  • Added Shavit_OnReplayStart and Shavit_OnReplayEnd forwards.

v2.3.2 - asdf - 2018-10-03 - shavit

v2.3.1...v2.3.2 https://github.com/shavitush/bhoptimer/releases/tag/v2.3.2 https://github.com/shavitush/bhoptimer/commit/73fdf77d36d1fd60fc2b3417c19454cabc349e50

  • Fixed !ranks being broken for some setups.
  • Fixed core loading when rankings is unloaded.

v2.3.1 - asdf - 2018-09-22 - shavit

v2.3.0...v2.3.1 https://github.com/shavitush/bhoptimer/releases/tag/v2.3.1 https://github.com/shavitush/bhoptimer/commit/e9a203ba946c58617e77619c45ff292ef1b7cf98

  • Added !deletemap.
  • FIxed !ranks showing titles as unranked even though they're not.
  • Fixed memory leak in shavit-replay.
  • Increased shavit_replay_timelimit's default to 2 hours
  • Made replay plugin not record more frames after going past time limit.

v2.3.0 - asdf - 2018-09-14 - shavit

v2.2.0...v2.3.0 https://github.com/shavitush/bhoptimer/releases/tag/v2.3.0 https://github.com/shavitush/bhoptimer/commit/c774f41ac80ca2b77a210a6fe7d7cd8c58f7b37b

  • Fixed errors.
  • Reworked checkpoints to not be so poopoo.
  • Fixed memory leak with checkpoints.
  • Fixed low gravity styles being trash with boosters.
  • Fixed HUD showing wrong speeds for slower/faster styles.
  • Fixed shavit_misc_prespeed 4. Set to 4 and combine with shavit_core_nozaxisspeed 1 to get the same behavior that SourceCode timer has.
  • Added shavit_replay_botweapon. Choose whatever weapon you want the bots to have.
  • Added shavit_replay_botplususe. You can disable bots from using +use.
  • Added !ranks command in chat module. This shows a list with all* the visible chat titles. Select an entry in the menu to preview the chat rank!
    • Easter eggs and privileged titles are excluded from this menu.
  • Added "easteregg" and "flag" settings to chat titles. The former decides on if it shows up in the !ranks menu. The latter limits this title to the flag/override you choose.

v2.2.0 - new chat processor - 2018-06-23 - shavit

v2.1.2...v2.2.0 https://github.com/shavitush/bhoptimer/releases/tag/v2.2.0 https://github.com/shavitush/bhoptimer/commit/945b1c85d00216dfb469b41d0e6ea48e77f852a1

  • Wrote a new chat processor for bhoptimer.
    • Uninstall any other chat processor you have installed.
  • Changed clan tag {time} to display only at 1 second or above.
  • Ensured segmented replays with deleted replay data are gone.
  • Added shavit_misc_speclist for misc's !speclist.
  • Added shavit_hud_speclist for HUD's spectator list.
  • Fixed chat color injections.
  • Fixed percentile ranking titles being broken.
  • Fixed SQL error on new setups.
  • Removed flat zone cvar, added shavit-zones config instead.
    • Removed custom spawn from cfg to prevent confusions.
  • Made viewangle recording use verified angles instead. This makes replays smoother, and removes most (not all) of the flickering from segmented replays.
  • Made CP save targetname/classname, both are very efficient now! Closer to real save states.
  • Added shavit_misc_maxcp and shavit_misc_maxcp_seg.
  • Fixed invalid client error on CP saving.
  • Fixed top-left HUD not showing correct style/track data.
  • Removed unused 'spawn point' zone setting.
  • Minor optimizations all around the codebase.
  • Fixed !save behaving differently from the !cp menu option.

v2.1.2 - bug fixes and polishing - 2018-05-07 - shavit

v2.1.1...v2.1.2 https://github.com/shavitush/bhoptimer/releases/tag/v2.1.2 https://github.com/shavitush/bhoptimer/commit/a5c68940c60740d53169da0be847a18c13eb5629

  • Changed default +left/right block behavior.
    • 1 now blocks movement, 2 also stops timer.
  • Segmented CP menu now pops up when changing between two segmented styles.
  • Changed bot flag behavior to ensure bots properly get their entity flags applied.
  • Fixed possible memory leak.
  • Fixed chat/style setting errors on player connections.

v2.1.1 - exploit fix - 2018-05-03 - shavit

v2.1.0...v2.1.1 https://github.com/shavitush/bhoptimer/releases/tag/v2.1.1 https://github.com/shavitush/bhoptimer/commit/fda9d81bc7ca1bfb32bf8751f6aa24da962dc166

  • Fixed serious exploit to do with checkpoints. Update ASAP!
  • Reduced database load on server start.
  • Removed perfect jump% from !wr on old, unmeasured records.

v2.1.0 - segmented runs! - 2018-05-02 - shavit

v2.0.3...v2.1.0 https://github.com/shavitush/bhoptimer/releases/tag/v2.1.0 https://github.com/shavitush/bhoptimer/commit/3e558558b003bd7e504fdc0ce9528ce0cbe383d3

  • Added support for segmented runs. Use "specialstring" "segments" to allow a style to use segmented checkpoints. Use the !cp menu on supported styles! Segmented styles also work with replays.
  • Fixed multiple memory leaks.
  • Added Segmented (normal) as a style to the default setup.
  • Added shavit_replay_botshooting. This cvar can allow you to disable attacking buttons for bots. 0 will make the bots not press mouse1/mouse2 at all. 1 will only allow shooting, 2 will only allow right clicking and 3 will allow everything.
  • Added two natives: Shavit_HijackAngles, Shavit_GetPerfectJumps.
  • Fixed a bug with replay data when loading a state after finishing the map.
  • Now mp_humanteam is respected by shavit-misc. The TF2 equivalent also is.
  • Now shavit_replay_defaultteam is always respected, regardless of if the map has a spawn point for the team.
  • Rewrote admin menu integration. Use the shavit_admin override to grant access. The Timer Commands category now has replay removal too.
  • Now weapons dropped by disconnected players will automatically clean up.
  • Added record count in !delete menu, disabled buttons when unnecessary.
  • Added perfect jump% measuring for scroll styles.

v2.0.3 - small updates - 2018-04-29 - shavit

v2.0.2...v2.0.3 https://github.com/shavitush/bhoptimer/releases/tag/v2.0.3 https://github.com/shavitush/bhoptimer/commit/c294408c431f315730e0bc71248009d74c1ddc73

  • Added style permissions:
    • Added Shavit_HasStyleAccess native.
    • Added permissions setting to styles. Use like "p;style_tas" for example. First section is the flag needed, and the second section is the override for it.
  • Micro optimization in spawn point generation.
  • Scaled slide zones with speed/gravity.
  • Reworked sounds to emit properly in CS:GO.
  • Fixed typos in the code, and translations. Thanks @strafe!
  • Fixed an issue where players get a wrong rank when actually unranked. Thanks Nairda for finding this!

v2.0.2 - begone, bugs! - 2018-04-19 - shavit

v2.0.1...v2.0.2 https://github.com/shavitush/bhoptimer/releases/tag/v2.0.2 https://github.com/shavitush/bhoptimer/commit/a0665072139c16aaac355953404982709f9ba816

  • Addressed CP menu bugs.
  • Addressed an issue where donor plugins not always allowing players to use custom titles.
  • Addressed an issue that caused chat titles to not always show.
  • Fixed CS:S HUD not showing track properly.
  • Fixed pre-zoned maps not saving spawn points if you just started the server.
  • Removed duck/unduck requirement for checkpoints. Upon teleporting, the plugin will automatically adjust you to the state of the checkpoint.
  • Fixed the 'to X rank' parameter when using percentile ranking in titles.
  • Reworked gun shot muting. Now it supports TF2, and I've fixed the issue that caused others' gun shots to not play at all in CS:GO.
  • Added shavit_core_defaultstyle. Usage: style ID. Add an exclamation mark as the prefix to ignore style cookies (i.e. "!3" to force everyone to play scroll when they join).

v2.0.1 - bug fixes - 2018-03-23 - shavit

v2.0.0...v2.0.1 https://github.com/shavitush/bhoptimer/releases/tag/v2.0.1 https://github.com/shavitush/bhoptimer/commit/c28de91fd4a1a153099c7adc1b95d4be0453ce00

  • Fixed serious exploits that had to do with checkpoints.
  • Fixed not being able to change the teleport zones' track on creation.
  • Fixed CS:S HUD not showing irregular tracks.
  • Fixed HUD breaking apart after adding styles without server restarts.
  • Removed minimum for shavit_timelimit_default.

v2.0.0 - official release! - 2018-03-18 - shavit

1.4b-hotfix...v2.0.0 https://github.com/shavitush/bhoptimer/releases/tag/v2.0.0 https://github.com/shavitush/bhoptimer/commit/f9b67450db01c1954d28dd36fe2e9ab96c45c11c

We're out of beta now! The last release was in September 21, 2015. There have been too many changes, but I'll try to mention the important ones.

  • Added configuration files.
  • There are multiple styles now. They're defined in addons/sourcemod/configs/shavit-styles.cfg.
  • The database structure has been revamped. Visit the wiki page for information.
  • Added cvars for most features.
  • Created a website for bhoptimer. See https://bhop.online/
  • Revamped the whole zones plugin. You can setup aesthetic looking zones thanks to grid snapping, wall snapping and cursor zoning.
  • Added many zone types: No speed limit, teleport zone, easybhop zone, slide zone.
  • You can now choose the zone sprite.
  • You can now edit zones after creating them. This includes manual editing of coordinations.
  • The plugin has received massive optimizations. It's very lightweight now.
  • Added a stats module. The main command is !stats (or !profile), it shows lots of useful information.
  • Added a dynamic timelimits module. It sets the timelimit for the map relatively to the average completion time.
  • Added replay bots. By default, there's a single bot that players can choose to playback with, the command is !replay. The recorded data is saved in an efficient structure (binary, rather than UTF) to make sure the server doesn't hiccup when data is saved.
  • Added a rankings module. The design idea is simple: points given per record are relative to the map's length, tier and how good the record is compared to the rank 1 record. The style played also affects the amount of points given.
  • Added bonus track.
  • Added logging for admin actions.
  • Added chat module. It integrates with rankings and allows players to use custom titles if they have access. See !chatranks and !cchelp.
  • The target version is now SourceMod 1.9 as it offers functionality needed for accurate timing.
  • Added checkpoints. You can save while spectating players or bots too. Teleporting will make sure you're at the exact same state you were in while saving (including timer data), so that you can't segment an impossible to achieve record.
  • Added automatic integration with KZ maps with buttons, and the Fly zoning standard.
  • Added +strafe detection.
  • Added strafe/sync counters.
  • Added custom sv_airaccelerate values for styles.
  • Added the ability to have custom physics for styles (i.e. HSW, SHSW, W-only etc).
  • Made prespeed/prejump limitations more user-friendly.
  • Added CS:S support.
  • Added TF2 support.
  • Fixed zones not rendering after a certain number.
  • Added the !hud command, it allows players to make their HUD contain the information they want to see.
  • Added commands to teleport to the end zones (!end, !bend).
  • Added team join hooks for comfortable spawning.
  • Added spectator lists.
  • Redone player hiding.
  • Added player teleportation.
  • Added weapon commands (!usp, !glock, !knife) and ammo management.
  • Added noclip commands (!p, !nc, +noclip etc).
  • Allowed dropping all weapons.
  • Added godmode.
  • Added custom prespeed limitations.
  • Removed clutter (like team changes) from chat.
  • Hid radar.
  • Changed weapons to disappear when dropped.
  • Added auto-respawn.
  • Added radio commands blocking.
  • Added scoreboard manipulation (clan tags, score/deaths etc).
  • Added configurable chat advertisements.
  • Added player ragdoll removal.
  • Added fuzzy search in !wr (so you can write !wr arcane rather than !wr bhop_arcane_v1 for example).
  • Added !rr command to see the recent world records.
  • Fixed all reported bugs.

v1.4b - hotfix - 2015-09-21 - shavit

1.4b...1.4b-hotfix https://github.com/shavitush/bhoptimer/releases/tag/1.4b-hotfix https://github.com/shavitush/bhoptimer/commit/489a6826d74a84ae8e65f9b92d17b3f4aba1f984

Fixed compilation for the SM 1.7.3 compiler.

v1.4b - more plugins - 2015-09-20 - shavit

1.3b...1.4b https://github.com/shavitush/bhoptimer/releases/tag/1.4b https://github.com/shavitush/bhoptimer/commit/519a647a53b79eb46fa3323ca44a1681ccda1f2a

shavit-core:

  • + Add a cvar for autobhop.
  • + Add a cvar for +left/right blocks.
  • + Add cvars that prevent pausing/restarting.

shavit-zones:

  • + Add a submenu that can adjust the zone's X/Y/Z axis before it's being confirmed.

[NEW PLUGIN] shavit-stats:

  • + Show maps done (/SW)
  • + Show maps left (/SW)
  • + Show SteamID3
  • * Make it actually work

[NEW PLUGIN] shavit-timelimit:

  • + Take an average of X (default: 100) times on a map and use it to decide the timelimit/roundtime for the map.

[NEW PLUGIN] shavit-replay:

  • + Properly working replay bot for forwards
  • + ^ same but also for sideways

v1.3b - Freestyle zones update! - 2015-07-27 - shavit

1.1b...1.3b https://github.com/shavitush/bhoptimer/releases/tag/1.3b https://github.com/shavitush/bhoptimer/commit/fd4bb2c67201ce30703a66a372a7d6d749db8171

shavit-core:

  • Handle freestyle zones

shavit-zones:

  • Allow creation of freestyle zones
  • Make multiple freestyle zones possible (damn you Aoki and badges for making stuff difficult!)
  • Handle deletion of multiple freestyle zones
  • Handle drawing of end/freestyle zones properly

The update should (SHOULD, not promising anything!) also make remote MySQL databases work, even though I'm really against them and they could make the server lag hard. And it also fixes many of the SQL issues that some server owners had.

v1.1b - created github repo - 2015-07-09 - shavit

https://github.com/shavitush/bhoptimer/releases/tag/1.1b https://github.com/shavitush/bhoptimer/commit/116cbab219b05ab033100e2ea2cbd1e52d0a1b92