130 KiB
CHANGELOG.md file for bhoptimer -- https://github.com/shavitush/bhoptimer Note: Dates are UTC+0.
v3.3.0 - zone stuff & bloat - 2022-06-28 - rtldg
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 0360b957e4
zone stuff
- main commits
e3aac2d24e4315221b86 - new cvars:
shavit_zones_usesql: Whether to automatically load zones from the database or not. If you're using standardized zones from some source withshavit-zones-http, then you'd change this cvar to0for example.shavit_zones_useprebuilt: Whether to automatically hooktrigger_multiplezones likeclimb_zone*andmod_zone*.shavit_zones_usebuttons: Whether to automatically hookclimb_*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_hookzoneand also in the Timer Commands menu
shavit-zones-http.spadded. 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 toshavit-zones.cfgto make zone beam textures move. - api and stuff:
zone_cache_tis now usable for adding zones from other plugins.- forward
Shavit_LoadZonesHere()is where you should addzone_cache_t's from other plugins
- forward
- removed
Shavit_GetStageZone()as it doesn't work well with multiple stage zones. - added
Shavit_ReloadZones(),Shavit_UnloadZones(),Shavit_GetZoneCount(),Shavit_GetZone(),Shavit_AddZone(), andShavit_RemoveZone() MAX_ZONES64->128.MAX_STAGES51->69.
everything else
- added an option to use an duplicate other players' checkpoints (#1142) @sh4hrazad
487e3db9d0- You can toggle this with
shavit_checkpoints_useothers(default: 1) - new parameters added to
Shavit_OnTeleportPre,Shavit_OnTeleport,Shavit_OnSavePre,Shavit_OnSave,Shavit_OnCheckpointMenuSelect, andShavit_TeleportToCheckpoint
- You can toggle this with
- changed czone settings to let all zone types be configurable. made the settings for bonuses apply to every bonus
ab73e36a15 - added
Zone_Speedmodso oblivious could have fun bonusesacf47a11b1- avoid putting these inside of entites that trigger a map's
player_speedmodbecause they'll probably override each other randomly - also gravity zones should show the gravity amount in zone edit menus now
- avoid putting these inside of entites that trigger a map's
- added the
!maprestart&!mapreloadaliasesa23348d843 - add csgo stripper:source configs for
workshop/2117675766/bhop_craton,workshop/1195609162/bhop_bless, andworkshop/859067603/bhop_blessd816423eb6- also a config for a shit
mod_zone_startonbhop_n0bs1_csswas added
- also a config for a shit
- added
ent_fireto cheat commands list since it can be used on csgobc62b92983 - added
HUD_SPECTATORSDEAD/ !hud optionSpectator list (only when dead)to hide the spectators list when you're alive because people spectating me makes me nervous 😵💫22a68b491b - added
shavit_core_hijack_teleport_angles(temporary?) TODO description53463d8fb9 - added an option to toggle the basic autostrafer on the autogain/velocity/oblivious autostrafer thing
c2e50761ec- +
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
96ef03e458 - made the !wr menu also print steamids to chat like the !profile menu does
7dddfe25f3 - added sm_beamer
d8a9dd7d7b - added
shavit_misc_bad_setlocalangles_fixfor CS:S/TF2. fixes somefunc_rotatingthings that stop rotating79baadf541 - 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 ondeathrun_steam_works8f11f9aaf1- open an issue or join the discord if you encounter any problems with this please.
- fixed the
Timer Commandsadmin menu category disappearing or being wiped when some bhoptimer plugins are reloaded09917f91d9 !ccmsg offand!ccname offwere changed slightly ||i can't remember what the difference is now||bfa9aa45e4- fixed some flag & admin checks for shavit-chat ranks when reloading or removing admin from people
41f50505f9affac70f99 - added buttons, scrolls, and anglediff to
huddata_t8e0e5ec8c1 - added back button to admin command menus
7c251ef81d - sqlite now automatically runs migrations too
fa6ccdbded - added
shavit_core_log_sqland removedDatabase2/Transaction2methodmap nonsense0f44dd1710 - added an auto stage zone numbering thing for #1147
d922cebf97- first stage thing is given
2... I'm not really sure what I want to do for this...
- first stage thing is given
- 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...
fa28502a0d - added
shavit_replay_disable_hibernationfor CS:S.9cbed1972b - fixed
permissionstyle setting typo that came from the v3.1.0 release1a03bdac13 - updated tf2 gamedata for the 2022-06-21 update
178d42e2fd - added some code to help deal with different sql db drivers. should help with porting queries to sqlite (shavit-rankings) & postgresql (sm 1.11)
4486528880
v3.2.0 - checkpoints & resettargetname stuffffff - 2022-04-27 - rtldg
https://github.com/shavitush/bhoptimer/releases/tag/v3.2.0
7c842afdf0
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.
- added
Shavit_OnTeleportPreandShavit_OnSavePre. The return values ofShavit_OnSaveandShavit_OnTeleportare now ignored.de8a82707b - fixed replay prop playback breaking due to a bad index
70f29d3ca5 - fixed replays not loading on the first map (and issues with creating replay directories too) (#1130) @Ciallo-Ani
d58d3ee1d5 - Changed the behaviour of
shavit_misc_resettargetname(#1123) @GAMMACASE0fee1862c8- Fix targetname and classname locking (#1135) @GAMMACASE
8f07c1d510
- Fix targetname and classname locking (#1135) @GAMMACASE
- renamed
shavit_checkpoints_checkpointstoshavit_checkpoints_enabledb05393cf9f - improved handle handling in
Shavit_SetCheckpointand addedcheapCloneHandleas a parameter for #113391ec294f42- and a couple of other commits for that issue
8f59007d1dea9a962711
- and a couple of other commits for that issue
- removed
Shavit_OnCheckpointCacheDeleted. addedShavit_SetTimesTeleported,Shavit_LoadCheckpointCache, andShavit_SaveCheckpointCache86af6ca07b - added max checkpoint counter to checkpoint menu
f642afe016 - moved shavit-mapchooser's
CheckRTVtoOnClientDisconnect_Postso it works properly ™️85ff178f47 - corrected native definition file for
Shavit_GetStageWR554606a210 - made
LowercaseStringfaster :pepega:3a6592cc5e - added
bhop_drop's bonus to mapfixesfda64ad102 - prevent nominations from being put twice on the map vote
ddb902e663 - changed oblivous autogain velocity stuff so boosters on
bhop_linear_gifaren't affected by vertical velocity @defiy76aaecdb6e - added
!nominatedmapsand!nominationsas aliases for!nomlist(#1136) @Nairdaad7785f91ce - removed reliable flag from centerhud and hinttext messages so they update faster and don't wait for an ack
ea3bd05124cf5bc4b7db - merge checkpoint menus and shavit-kz.sp, etc (#1137) @sh4hrazad
6d208a8595- fix normal checkpoint menu spams on changing the style from non-kz to kz styles
- Added
kzcheckpoints_onteleandkzcheckpoints_onstartstyle settings (merged inshavit-kz.sp).
- some currently disabled ladder checkpoint stuff has been added
1802f998fc158f0b8546 - made
Shavit_StartReplayFromFileretrieve player name correctlyaa1f0eb169 - removed
Shavit_Core_CookiesRetrieved. tldr just check if client cookies are cached.1230bf9266 - added
shavit_hud_block_spotted_hintfor CSS48ffd9bc71 - made the buttons in wr submenu not do stuff
14e71dbbb4 - made the
Reset Checkpointsbuttons also trigger theShavit_OnDeletecallback.b956ffb8aa - added
fClosestReplayLengthtohuddata_tandShavit_GetClosestReplayTimeb2b2fe3344 shavit_misc_weaponcommandsnow has options 4 and 5 for all weapons/grenades...a25417cc8ac8ed191d11- might be buggy. let me know if there's problems.
// 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
https://github.com/shavitush/bhoptimer/releases/tag/v3.1.3
d77fa13ebe
edit: bhoptimer-v3.1.3-1.zip = included eventqueuefix license. bhoptimer-v3.1.3-2.zip = bug fix commit included from 70f29d3ca5
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.
- included eventqueuefix 1.2.1 in release zip so people use the correct eventqueuefix version for the timer
invert this duck autogain nsl boolean26dfdcc927- added
player_speedmod&m_flLaggedMovementValuevalues to debug targetname hud thing9a5ff64fc5 draw perfs keyhint even in startzone so the hud doesn't resize constantly987eebb3b0don't let mp_humanteam get in the way of jointeam 1 (for css spectatemenu prompt on first join)a0153de9f8- two stats playtime bugfixes
253321ced6363627603b - fixed lowgrav & ladders sometimes breaking still (in 2022)
ef5ac148b3 - added the
startinairstyle setting which might be useful for non-bhop gamemodes like surf or tf2 stuff. might be exploitable so just let me know :^)a6ade753fe - @NukoOoOoOoO added !czones so players can change zone colors & style
9c634868cbhttps://github.com/shavitush/bhoptimer/pull/1119 - multiple maps added to shavit-mapfixes.cfg
bhop_blackshit2360d71494bhop_apathyandbhop_interloper614b16ce17
don't start non-prespeed styles unless on ground for .5s89e97dfd3d- modified
prespeed_ez_velto hopefully prevent invalid velocities & to make it work with just where the player is looking while standing still98ee179927 - make
shavit_zones_box_offsetaffect zones when changed mid-map840490cc54 - prevent "invalid" from showing up in the top left immediately after a new WR is made.
2e791a8237- adds a return value to
Shavit_GetWRName
- adds a return value to
- make the scroll count !keys display work for (non-prop) replay bots
80e8480b7a- adds
Shavit_GetReplayEntityFlags(), although it might be removed in the "near" future
- adds
- prevent
shavit-replay-recorderfrom overwriting faster replay files ifshavit-replay-playbackis unloaded060ce5e660 - added more shavit-checkpoint forwards so third-party plugins can store custom data in checkpoints.
69445ebab5mpbhops_but_workingnow uses these to work with segmented checkpoints516b470fea/addons/sourcemod/scripting/mpbhops_but_working.sp (L116-L132)StringMap customdatawas added to the bottom ofcp_cache_t- includes
Shavit_OnCheckpointCacheSaved,Shavit_OnCheckpointCacheLoaded, andShavit_OnCheckpointCacheDeleted
v3.1.2 - asdf - 2022-01-28 - rtldg
https://github.com/shavitush/bhoptimer/releases/tag/v3.1.2
d335ec7262
- more robust max prestrafe limit thing to replace something from v3.1.1
dd0059f15f - fix crash that came with the
player_speedmodhook0000000146 - added
bhop_lowgto mapfixes7399512f5e - small change to
prespeed_ez_vel's internal stuff to maybe prevent the-2147483648velocity thing from happening and freezing you00000008fd
v3.1.1 - asdf - 2022-01-19 - rtldg
https://github.com/shavitush/bhoptimer/releases/tag/v3.1.1
a1d30afdbe
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
- made most of the shavit-timeleft time-remaining messages silent
6921f38214 - removed forgotten chat message when changing timescale
b4d13836ea - added something to have an empty timer prefix with no preceding space
9adc56e284 - fixed shavit-stats error when not using shavit-mapchooser
6c88f45ba0 - make block_pstrafe do nothing when autostrafe is enabled
4167001b5c - replay bot name is filled with steamid by default (which is helpful for playing replays of a player who isn't in your db)
2909a38179 - fixed some pb menu bugginess
6d296caf36 - added !adverts
3d40d4f809 - added reset-checkpoints back to tas menu
ecbc7edca2 - prefix css expected hud rank with
#062efd4772 - basic autostrafer implemented
e43c011711 - moved some style-setting handling stuff around
c8c87347a5 - removed xutax_find_offsets
bacc5672fc - add
!hidewepsas an alias for!hidewepfda843a09f - added something to help with csgo (128 tick) tas autoprestrafe starting the timer earlier due to going faster than 290.0
aef89e9bb4 - removed more unnecessary shavit-rankings point recalculations and removed column
points_calced_fromb3b7de37e27a11acf2e6 - fix bug that'd make players stuck when checkpointing replay bots
117d2d277c - hijack angles when autoprestrafing
345461a838
v3.1.0 - asdf - 2022-01-11 - rtldg
https://github.com/shavitush/bhoptimer/releases/tag/v3.1.0
0133300a40
important things
shavit-replaywas split intoshavit-replay-playbackandshavit-replay-recorder- delete shavit-replay.smx or stuff will break
- added
minimum_time(default: 3.5) andminimum_time_bonus(default: 0.5) style keys2fc725414998505fd999361826908e- You will need to adjust these for any meme dumb styles that let you go really fast like parkour, unreal, or thanos.
main changelog stuff
- closestpos has been updated to v1.1.1. https://github.com/rtldg/sm_closestpos/releases/tag/v1.1.1
- moved checkpoint code out of
shavit-miscand intoshavit-checkpoints - sped up queries used for recalculating points
shavit-mapchooserstuff- added
smc_mapvote_printtoconsolea3e3e0682b - fix an error introduced that involves novote & rtv
0164d15910 - made
!mapwith no args show the menu using theshavit-mapchooserlist3388c7b5d3 - fix
!mapmenu using wrong parameter for client4f98303b4c - made rtv change the map immediately if novote wins
cf51054460 - added
Shavit_GetMapsArrayList()andShavit_GetMapsStringMap()cdb4b5746e - remove nomination on disconnect
ad837a7d24
- added
- added
shavit_rankings_weighting_limitae82d9a5ad - add missing sync next to strafe count in CS:S hud
c5d4679c9a - changed
shavit_misc_botfootstepstoshavit_replay_bot_footstepsc33ea7c0d0 - turned replay reading & writing functions into stocks so they can be used by external plugins easier
ab0fc28c26 - removed
Shavit_OpenCheckpointMenu(). UseFakeClientCommand(client, "sm_checkpoints");instead0b31c6a608 - removed
Shavit_OpenStatsMenu(). UseFakeClientCommand(client, "sm_profile steamid");instead1bb7b3e274 - fixed bug that was changing human names on connect message
c81f958efb - added an alternate format for the
!keystext that should work better for linux playersa0a2cce04a - flashlight flag is now disabled when someone uses
!spec0f66a081a3 - swapped to using
OnPlayerRunCmdPostfor recording replay frames55b6253b30 - fixed
isBestReplayandisTooLongbeing swapped inShavit_OnReplaySaved()4d8faa1099de1d1d5145 - fixed own playtime display & rank in
!playtimemenudf2e9c402d - added some stripper configs for bad maps
09693df6ebd59399b59c5a39f5ce45849bc0ed763f3474f463 - made
!hide's set-transmit hook to also hide dead players like btimes (so players can't use a speclist cheat in csgo)73b17941ce - removed
shavit_misc_bhopsounds 05d26e76ec2 - allow
!setstartoutside of the start-zoneb88367d079 - removed
shavit_core_timernozone4b51bd7116 - split shavit.inc into .inc files for each plugin. shavit.inc now just includes all the separate .inc files.
- mapfixes for
bhop_overthinker's bonus,shavit_misc_resetclassname_mainto unbreakbhop_japan,kz_bhop_strafe_comjump2andkz_bhop_strafe_comjump2_v2,bhop_horseshit_5, unbreakbhop_decbble59ec8eb6e5,bhop_appaisaniceman3dedbba5ec95b8a149343, and some more misc5882e458db - something to stop hsw tracking strafes on
w573e97e9dc - something that might let people unrtv after a non-rtv'd mapvote
cf7c1d85bb - replaced
shavit_misc_weaponsspawngoodwith!hudsettings that toggle USPs with silencers and glocks being given burst-fire.8a31bc84aa0591499471- added
!hudsetting that lets you pick between spawning with a USP or glock. - added
Shavit_GetHUD2Settings()in this commit - made weapons spawn with skins
8ce9cd97b4
- added
- Fixed SQL error that'd happen from inserting player names on CS:S due to steam names being
[32+1]and CS:S names being[32]by introducingSanerGetClientName.5312c31253 - Fixed name changes not showing up in chat
f61ea0f070 - added
!sm_drawallzonesandshavit_zones_allowdrawallzonesa68b21e9bd - added
!tptozone9cb2298764 - added map list matches to !wr menu
bce7c04afe64088b6147 - added
Shavit_GetReplayFolderPath()70ca6ace3d- also
Shavit_GetReplayFolderPath_Stockxd4b711b1fab
- also
- merged bhopstats into repo
aba539856e - adjusted !keys alignment
03d44c9d23 - added
Shavit_Core_CookiesRetrieved()andLoading...text to hud while player cookies are loadingf344fddcdf - added
kzcheckpoints_laddersstyle setting48d8e01769 - added
climb_zone_*parsing for prebuilt zones30574923e5 - messed around with the csgo hud to hopefully make it look better
7e04e840c4 - added
!addzone&!delzoneas aliasesbd596bec75 - fixed css perfs not showing if sync is not enabled
07b165b3ad - disable style setting
force_timescale4e16365991 - merged
!ranksmenu and!chatranksmenu30935885d4 - draw zone beams on
!ror!endb78a6ec4ec - stop tracking style playtime when dead / spectating
fb62419006 - send message to player after using
!ccaddon thembc978b6add - use mapchooser maps when possible for calculating !profile & !mapsleft/!mapsdone stats
da734db699c89e1d4400f8f336d21a - make
!recentrecordsuse theshavit_wr_recentlimitcvar correctly183e758971 - add hacky fix for zone disappearing after hitting exit on the zone-edit menu
3c5958eb93 - added more commands to the anti-sv_cheats command list
79cd7f1225 - print steamids to chat when using
!profile <otherplayer>4d1a0b5eb3 - allow you to use
!settieron a map you're not on (!settier N bhop_different_map)6d21e25679 - added
Zone_NoTimerGravityandZone_Gravityc55531168d13d6d586b3 - change
shavit-zones.cfgparsing so you don't have to include everything every zone type (especially for multiple bonus)2067dc7c38 - don't display stop confirmation when in practice mode
f3ec01870b - don't print practice mode warning when teleporting to practice mode checkpoint while already in practice mode
f5652c641e - some random checks for times <=
0.11so dumb times don't happenbff7ace887 - allow pressing
climb_endbutton's without being on the groundf02ac94bbf - fixed some buggy kz button restarting things
86b23b33a2Shavit_MarkKZMap()andShavit_IsKZMap()now require track parameters
- any number of kz buttons should work on a map now
04eea994d8 - added
shavit_core_save_ipsso you can disable storing player ips in theuserssql table if you want729f060f91 - based strafe count on input vel instead of button flags
0db2b30a77- this also solves the thing where using
+klookand holding+forwardwould give you 0 strafes.
- this also solves the thing where using
- some wip csgo hud stuff and more forwards
3295e235537675b60567Shavit_PreOnTopLeftHUD,Shavit_PreOnDrawCenterHUD,Shavit_PreOnDrawKeysHUD
- disable
shavit-rankingsSQL function creation ifshavit_rankings_weightingis1.0254eea7780 - made scoreboard update on a 0.2s timer instead of 1.0s
a8016dff00 - unbreak
player_speedmods that disable buttons (like the one onbhop_futile)1802dd800703c3af1a4f - try to prevent bad mins/maxs values for zones by adjusting how offsets are applied
39c9d96924xc_fox_shrine_japan_v1will crash if i make a 16unit zone at the top (maybe elsewhere too?) so that's why this was added.
- make
Shavit_OnTimeIncrementunable to edit time (this change breaks some tas plugins)a146b51fb1- also fixes usage of the end-zone-offset
- bumped replay version number to help track which replays might be affected by this
94b3c41f41
- bumped replay version number to help track which replays might be affected by this
- also fixes usage of the end-zone-offset
- update velocity-difference if pause-movement is enabled
2e627fe3e2 - add
Shavit_GetReplayFolderPath_Stock4b711b1fab - added style settings that override convars relevant to prespeed for #954
396f2017c5prespeed_typeforshavit_misc_prespeed,blockprejumpforshavit_core_blockprejump,nozaxisspeedforshavit_core_nozaxisspeed, andrestrictnoclipforshavit_misc_restrictnoclip
- use all valve_fs search-paths for maps folder reader functions (so custom/maps/ folders work better for me)
3c59adce57 Refresh menuis now shown on every page of zone editing menusc68d50a4d0- ensure timescale-change callback is called on Shavit_LoadSnapshot
f14ae3a604 - made style/track change callbacks actually change style/track before the callbacks happen
cd2a74240a - add
sm_prevcp,sm_nextcp, andsm_deletecpf89816449a - hopefully stop timer commands menu from being wiped on plugins reload
1509e77728 - made some of the admin menus, like time-deletion, reopen
aa7887ecf4 - got more stoptimer confirmation menus working (style change,
!end,!r)53aeec31f235391f36d1- adds
Shavit_OnEndPre,Shavit_GotoEnd(), andShavit_OnStyleCommandPre
- adds
- made
spectatecommand use!spechandler62c2a26e48 - made the timer-increase-scale =
tas_timescale*timescalecd91255c52 - fix wrholderrank table creation error with versions of mysql 8.0 for #1097
94d8d91a82 - made points recalculate on wr-delete and remove recalculating on mapend (since it's unnecessary)
ede141d8c0 - made
shavit-wrvalidmaps query combine mapzones&playertimes43d6a31ac0 - delay
wrhrankXXXqueries by 10s on mapchange since they're slow and block cookies on databases with a lot (a lot) of runs8827864fb8 - made smc_display_timeleft display time until map vote in chat
01a2e616a6 - made
!ihate!main& advertisements messages silent900083b321 - made
shavit-hudupdate topleft on track change & spectatee change431fd18ecbb2d7b4d9bd4a07f7266a53d2917c404eabf89a4f - show topleft when spectating idle central !replay bot
a750753a62 - made debug targetname thing a !hud option instead of cvar https://github.com/shavitush/bhoptimer/compare/v3.0.8...master
- added style setting
prespeed_ez_velwhich can set the player velocity on first jump for prespeed styles8e0736e3d3https://www.youtube.com/watch?v=ae2mH78bzUI - made everything in
specialstringbe set as regular styles.key1;key2=somethingwould setkey1to1andkey2tosomething73d21ea9d18a9fe14274 - added
Shavit_IsClientUsingHide()4ec8a620be - various changes so bhoptimer will work with sourcemod 1.11
3348e54316ae0145430a - add menu parameter to
Shavit_OnCheckpointMenuMade794c379bf2 - added
Shavit_GetZoneTrack(),Shavit_GetZoneType(), andShavit_GetZoneID()baa824e8729c4f626076 - added
shavit_chat_enabledif you want to use alternative chat processorsfa58b0f7fe - made player savestates save on player suicide
871f59c235 - added option to play replay bots at 0.5 speed in the
!replaymenu.0cc406c962- adds
Shavit_GetReplayPlaybackSpeed()
- adds
- implementation of
!pb/!times <target>added for #6363be3b4e3b2590d1fb290 - made csgo use center-text for keys
46550e7a83f474a944ae - spec_next/spec_prev memory leak fix
f4d2d6d653 shavit-tas.sp,tas,tas_timescale, and more!4aac85d3fdf193679a9d1ce6acc5f42fa06031dee3ed6027ca1633201e16576c773134da172f07aaba5ad21661b34a4e6677c089b3af9d0286df9edda115632b7be8e8f71657tas_timescale- greater than
0.0= forced tas-timescale on this style (example:"tas_timescale" "0.5") -1= players can change their timescale manually- The implementation was based on KiD-TAS
- greater than
autostrafe-1= players can toggle between the 1-tick autostrafer & the autogain velocity based one1= 1-tick autostrafer from @xutaxkamay (retrieved from KiD-TAS)2= faux autostrafer that gives velocity from @defiy (retrieved from defiy/autogain)3= faux autostrafer that gives velocity (no speed loss version (for fun high speed turns)) from @defiy- not a "legit" tas mode since impossible turns are possible.
autoprestrafe- TAS Prestrafer for maximum ground movement speed.
edgejump- Automatically jumps when the player will fall off a ledge next tick.
- Should jump out of the start-zone with a 0.0 zone offset.
autojumponstart- Automatically jumps when the player will leave the start zone.
"tas" "1"= Enables the TAS style settings unless they are explicitly disabled:tas_timescale -1,autostrafe 1,autoprestrafe 1,edgejump 1, andautojumponstart 1
- +/- timescale options show up in the segmented checkpoints menu when
tas_timescaleis enabled578dd01e1a - added
!tasmenu/!tasm,!ts <number>,!tsplus <number>, and!tsminus <number> +autostrafe/-autostrafe/!autostrafe,+autoprestrafe/-autoprestrafe/!autoprestrafe,+edgejump/-edgejump/!edgejump,+autojumponstart/-autojumponstart/!autojumponstart- added
Shavit_ShouldProcessFrame(). - added
fplayer_speedmod,fNextFrameTime, andiLastMoveTypeTAStotimer_snapshot_t Shavit_SetAutostrafeEnabled(),Shavit_GetAutostrafeEnabled(),Shavit_SetAutostrafeType(),Shavit_GetAutostrafeType(),Shavit_SetAutostrafePower(),Shavit_GetAutostrafePower(),Shavit_SetAutostrafeKeyOverride(),Shavit_GetAutostrafeKeyOverride(),Shavit_SetAutoPrestrafe(),Shavit_GetAutoPrestrafe(),Shavit_SetAutoJumpOnStart(),Shavit_GetAutoJumpOnStart(),Shavit_SetEdgeJump,Shavit_GetEdgeJump
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
https://github.com/shavitush/bhoptimer/releases/tag/v3.0.8
b2a95095e7
stuff
- fix replay bot being given a usp repeatedly on csgo
e7bf386d14 - hide
timeleftfrom chat ifsmc_hide_rtv_chat 1468e9bfee9 - fixed
sm_profilewithout any args not working468e9bfee9 - fixed
sm_mapsdonewithout any args not working0f250cc780 - added
bhop_symbioticto shavit-mapfixes.cfg87f361ac3d - make the
Alphabeticlist in !nominate filter out maps followingsmc_min_tierandsmc_max_tier83a572ce96 - added map count to tier display string
7375900b83 - added bhop_drop to mapfixes
b64ed479a9 - added
shavit_hud_debugtargetnameb1a5339910 - added
shavit_timelimit_minimum&shavit_timelimit_maximum35de5f5716 - added
shavit_timelimit_hidecvarchangead48845d62 - change the dynamic time limit averaging from row-count to the minimum times thing
6b2f709320 - add
shavit_misc_spec_scoreboard_ordere53fb80373 - add ranks to playtime menu
c52eb10755 - removed
shavit_misc_prespeed_startzone_messageand usage ofBHStartZoneDisallowedbfdfff0eb1 - fixed the completion message when spectating someone that I broke
480dbefabc - prevent nominate/unnominate when the map vote is active or finished
c3e57b851c - added
sm_reloadmap&sm_restartmapwhich reload the current mapf425294f54 - some replay bot changes so bots join and have the true name earlier
f7fd2af33c - adjust dynamic time limit to always multiply average
e174b95043 - added matches menu when using !map
afed33e944276d74b968
v3.0.7 - asdf - 2021-09-23 - rtldg
https://github.com/shavitush/bhoptimer/releases/tag/v3.0.7
346d7f903c
e7bf386d14 (v3.0.7-1) (added with a single commit added for csgo handling of shavit_replay_botweapon)
32f0e50905 (v3.0.7-2) (added to fix !profile with no arguments saying it was broken)
stuff
- some name trim & buffer size stuff for !recent menu
60d9609b7d94f30693c0 - reverted shavit-wr change that resulted in handles leaking
8ee42d6490 - in-game player's cache is refreshed when they have a time of theirs deleted
b893486972 - added
!ihate!main1954583070 - !wr menu remembers page
82c1605e94 - !wrn, !wrsw, !bwrscroll, etc added
c80515496a - added
Shavit_SetReplayCacheName36a468615d - fixed prebuilt zones being cached twice https://github.com/shavitush/bhoptimer/commit/ea5e6b853579a9ec3b4cA1fcbb6816c0b17d643a
- added support for playing btimes replays (file names still need to be renamed)
fe1d01e1fb - tried to prevent zone beam flickering a bit
a62a5ca3bbfe076df49e - fix thing that was wiping !wr menu cache
5eae3f686a - fix mvp star query not running
c25e3404b4 - wrholder queries changed
8bc2662418 - add more parameters to
Shavit_OnReplayStartandShavit_OnReplayEndf88885bafc - fixed tf2 linux bot creation
6e3bd85c14 - add dominatingme symbols for players who hold a wr on the current map
4d03e30e6f - fix tf2 uncrouch that would limit velocity
cfa724f738 - added shavit_misc_prespeed_startzone_message
b602c57440 - add playtime tracking. total time & also per-style. (replaces shavit-playtime by cam/whocodes)
670f220b76d3b285f645bf9b73180f - made !profile/!mapsdone/!mapsleft
<steamid>workb23542c1d80698a9d77e In End/Start Zoneis now only shown when you are inside a zone of your current trackef5bf0c460- fixed bullet sound/impact hook not working 100% of the time
24e6a0b937 - merged in shavit-mapchooser
d79cf72559- many speed improvements. you can now use !map or !nominate with 6k maps and it won't lag :)
- added
smc_prefix,smc_anti_spam,smc_maplist_type 4,smc_rtv_spectator_cooldown,smc_exclude_prefixes,smc_autocomplete_prefixes,smc_hide_rtv_chat,smc_nominate_delay,sm_extend(alias ofsm_extendmap),smc_mapvote_extend_limit -1 - added something to stop segmented players from accidentally voting by blocking the menu for 1.75s
7342baabe4 - duplicate maps don't show in the map vote menu anymore
fed35516f8
- moved setting timescale for eventqueuefix events into the timer to handle some style settings (you'll also need to update eventqueuefix)
f8147a63f3 - added
bhop_kirousto shavit-mapfixes.cfg3149fc63f6 - added track to zone log message
07a55bd250 - !stats/!profile menu was made cooler by @NukoOoOoOoO & @Nairdaa https://github.com/shavitush/bhoptimer/pull/1077
- fixed being able to abuse endtouch boosters on segmented (requires eventqueuefix)
f4d8e55789 - migrated map names in db to be lowercase
f23bd4b96c - updated csgo offsets for UpdateStepSound & GetPlayerMaxSpeed
5b522d31c506e9f2338b
v3.0.6 - asdf - 2021-08-21 - rtldg
https://github.com/shavitush/bhoptimer/releases/tag/v3.0.6
c00ab666be
- fix reset-checkpoints menu from being overlapped by the checkpoint menu reopening. thanks, haze
fc801e8a01 - fixed some more errors that came up from the Shavit_OnDatabaseLoaded stuff
309421ad18599b276e42 - wr cache is now emptied on map end so you no longer see stale times on map change for a couple seconds
09f34bcef3 - delayed bot name change to prevent crash in Host_Changelevel
f7cd8bf072 - stopped timescale from being set to less-than-or-equal-to zero. this should fix the rare bug that'd cause people to be stuck on map change
4553286104
v3.0.5 - asdf - 2021-08-20 - rtldg
https://github.com/shavitush/bhoptimer/releases/tag/v3.0.5
5687095144
599b276e42 (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)
- The zone intersection checks now block start & end zones from intersecting.
6bcb16b361e00b394356 - Fixed a number of things for replay bots using custom-frames
- Fixed the broken
delayparameter inShavit_StartReplayand friends.fc8b78ae43 - Fixed the HUD time when spectating a bot with custom-frames.
fc8b78ae4311d2ae0785 - Added
Shavit_GetReplayCacheNamef79335270dd798de9cb2
- Fixed the broken
- Added
kz_bhop_izanamitoshavit-mapfixes.cfgf5a5f5e0c5 - Made the WR message2 (avg/max vel & perf percentage) only print for non-
autobhopstyles.a373329499 - Added
Shavit_OnRestartPreto fix usingsm_rto respawn from spectator.3f14b65cc4- The return value from
Shavit_OnRestartis now ignored.
- The return value from
- Added
shavit_core_disable_sv_cheatsto blocksv_cheatsfrom being set.140b43dd40c5480e70879f313ee0cf4da5d528a6- The following commands can only be used by rcon admins now:
ent_setpossetpossetpos_exactsetpos_playerexplode <player>explodevector <player> ...kill <player>killvector <player> ...give- Also, some of the cheat
impulses.
- The following commands can only be used by rcon admins now:
- The checkpoints menu will now reopen every 0.5s to help people who have bad internet
aa78c6fc0e - Weapons on the ground will now be removed every 10s if
shavit_misc_noweapondropsis enabled.c3ad16b418 - Nobody liked the replay postframes increasing the time at the end of the replay, so it was removed
2eb78a2a14 - Changed the
wrhrank*family of TEMPORARY tables to be VIEWs insteadd4b61a474f - Made sure sm_closestpos handles are deleted when a replay is unloaded.
c8bcd75fa0- By the way, the releases page now has linux & windows binaries made from github actions. Thanks @fuckOff1703
- Prebuilt zones (
mod_zone_*) are inserted into the database now so things like!mapsleftwork properly for them. - Replay Props have been improved so you can now see entities that are outside your
AreaNum!2733faf57d - Added
SHAVIT_LOG_QUERIES2b4d77d281
v3.0.4 - asdf - 2021-08-08 - rtldg
https://github.com/shavitush/bhoptimer/releases/tag/v3.0.0
eab31036a4
- 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
8009dbab88 (probably...)
- added
shavit_misc_resettargetname_main&shavit_misc_resettargetname_bonusto 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
8a8db13c4a
- 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
32658a029d
- 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
https://github.com/shavitush/bhoptimer/releases/tag/v3.0.0
9adf78d311
(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.
!rnow goes to the most recent track.!main/!mwas 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
!replaymenu 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-fixto 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>andsm_ccdelete <steamid>to give ccname&ccmsg access via steamid instead of adding them with admin flags or something (#861). commit sm_recalcallandsm_recalcmapshould be faster now.- added
sm_toggleadvertsfor clients. - Multiple bonus typo convenience commands added.
sm_b1,sm_b2, etc through tosm_b8. - Multiple stage typo convenience commands added.
sm_s1,sm_s2, etc throughsm_s9. !rnow resets your timer back to the track you were previously on.!main/!mwas added to move you back to the main tracksm_phas been changed to be an alias ofsm_profileinstead of noclip. You'll probably want to usesm_ncnow.sm_noclipcan now be used as an alias of the timer noclip commands. commit
sm_loadunzonedmapto load the next unzoned map from themapsfolder (doesn't include workshop maps or sub-folders).sm_savewill now refresh an open checkpoint menu.
Convars
- added
shavit_rankings_default_tier. (#1041) - renamed
shavit_stats_mvprankonestoshavit_rankings_mvprankones. - renamed
shavit_stats_mvprankones_maintracktoshavit_rankings_mvprankones_maintrack. shavit_misc_prespeedgained5 - Limit horizontal speed to prestrafe but allow prespeeding.commitshavit_hud_timedifferencerenamed toshavit_replay_timedifference- added
shavit_replay_timedifference_tickto change often the time/velocity difference values are updated. shavit_misc_hideradarwill now forcesv_disable_radaron CS:GO. commit- added
shavit_replay_dynamicbotlimitto set how many replay bots can be spawned by players. - added
shavit_replay_allowpropbotsto enable/disable Prop (prop_physics) Replay Bots. - added
shavit_core_timeinmessagesto print the server time before chat messages and timer messages. commit - added
shavit_misc_botfootstepsto toggle replay bot footstep sounds. commit, commit2, commit3 - added
{cr}as an option forshavit_misc_clantag - added
shavit_misc_weaponcommands 3to give infinite clip ammo (useful for CSS which doesn't havesv_infinite_ammo). commit - added
shavit_replay_postruntimeto set how long postframes should record. commit - fixed
shavit_misc_godmode 1(no fall damage) not working (#1051)- spectators being aimpunched has been fixed also. commit
- added
shavit_misc_weaponsspawngoodto make glocks spawn on burst-fire and USPs to spawn with a silencer on. - added
shavit_core_pause_movementto allow player movement/noclip while paused. (#1067) - added
shavit_zones_prebuilt_visual_offsetto adjust the visual zones for maps likebhop_amaranthglowandbhop_tranquility - added
shavit_misc_experimental_segmented_eyeangle_fixto fix segmented replays have bad eye-angles when teleporting to a checkpoint. commit
Misc
- Allow !goto/!tpto from start/end zone (#963)
- only print the stage time message once per stage (#965)
- allow !resume when not on the ground (#966)
- Multiple bonuses (1-8) added (#982)
- Bonus1 settings are copied to any bonuses that don't have settings in
shavit-zones.cfg
- Bonus1 settings are copied to any bonuses that don't have settings in
- Persistent-data, savestates, and checkpoints have been improved.
- Can now checkpoint onto a ladder thanks to
m_vecLadderNormal. - Fixed segmented checkpoints from starting in practice mode sometimes (#1023)
- Persistent data is now kept when changing map to the same map. This is done because of server hibernation causes map changes a lot on csgo which is annoying.
- reduced some allocations and ArrayList cloning
- fixed persistent data & savestates spawning you in the wall if you were ducked in a tunnel.
- Can now checkpoint onto a ladder thanks to
- Add support for
hermansimensen/eventqueuefix- boosters & map outputs can be saved in checkpoints to prevent cheesability
- events are paused from running when the timer is paused (although this still needs to be worked on)
- increased top left WR hud buffer size to handle long player names (#1050)
- changed replay bot score from 2000 to 1337 (#1059)
- initial DynamicChannels stuff added (which probably doesn't work too well)
- Fix exploit allowing extra height on spawn. commit
- Speculative exploit fix for passing through zones or something. commit
- Speculative fix for timers starting when you're not on the ground. commit
- Fixed bug that caused style command callbacks to register twice.
- Improve zone drawing cycle stuff.
- Various SQL query changes to hopefully improve the speed of some things.
- Replay bots now do a (jank) jump animation (#1046)
- Block SHSW on HSW while still allowing
+backto be used in the air to stop. (#973) - Removed restart warning for segmented styles.
- Fixed
player_speedmodand timescaled styles interacting. For example the bhop_voyage hot air balloon level now works timescaled. commit- edit 2021-11-08: also
speedandtimescaleboth affect styles now since some commit somewhere... slow mo was affected. just remove the"speed" "0.5"and it should work how it used to
- edit 2021-11-08: also
- Setspawn/setstart for each player added. !sp / !ss / !delss / !delsp (#1028)
- Added velocity difference to the HUD from the closest replay time position. commit
- Removed
base.navby embedding it in shavit-replay.sp. - .nav files are now written for all maps on plugin start. commit
- .nav files can now be loaded without needing to changelevel. commit
- Show wrs and blank styles on
!wr notcurrentmap. commit - Menus now stay open forever unless closed.
- Zone editing and creation modifiers and grid-snap values will now be saved between menu usages. commit
- Changed TraceRay masks to use MASK_PLAYERSOLID for zone snapping. (#1032)
- fixed worse-time completion messages not printing for spectators.
- !keys menu had changed a bit.
- blocked pausing while ducking. commit
- fixed csgo team menu being open on join and also needing to be closed twice. commit
- fix checkpoints not saving timescale. commit
- The
playertimestable addedexact_time_intwhich will be used to save the exact time value since there's some rounding problems with float-formatting & database handling. commit - fix bug with shavit-timeleft repeatedly calling
Shavit_StopChatSound. - The weapon commands,
sm_glock,sm_usp, andsm_knife, now have rate-limiting to prevent the server from spawning too many entities and crashing. commit - fixed the original zone disappearing if you are editing zones and then cancel. commit
- Spawns created by
shavit_misc_createspawnpointswill only fill in missing spawnpoints now and will not create extra. commit commit2 - fixed a bug that'd give 2 completions on initial map finish. commit commit2
- A migration was added to subtract 1 from all completions in the database to correct older times that were affected. commit
- The zone start-point and end-point are now blocked from being placed in the same x or y axis. aka: no zero-width zones. commit
- More radio commands and pinging commands where added to the radio blocklist. commit commit2
Shavit_PrintToChatAllchanged into a native to decrease some allocations and also to work withShavit_StopChatSound. commit- CS:S and TF2 center hud thing now hides when the scoreboard is open so less flickering is shown. commit
- reset stamina on landing for csgo easybhop so you don't have to change
sv_staminalandcost(unless you want to) commit - avg/max velocity added to run completion (2nd) message.
- calculates based on the velocity from every frame instead of velocity on jump. (so it works well with surf)
- added support for rtldg/sm_closestpos (C++ extension) to improve closest position finding speed.
sm_closestpos(0.000006s)--sourcepawn(0.011590s)(time needed to locate closest position with a long badges replay i had)
- Added looping, dynamicly spawning, and physics_prop replay bots. commit (there's many more commits, but that's the initial one)
- Looping bots will repeat any replays on tracks and styles specified for it in
shavit-replay.cfg. - Dynamic bots allow multiple replay bots to be spawned by different players so replay bot hogging isn't as problematic.
- Prop replay bots are physics_props that the client spectates and don't take a player slot.
- Currently does not work well with area portals, func_illusionary stuff, and anything that is generally in a different "area".
bot_join_after_playeris now used to determine whether to spawn bots in an empty server.- Here's some relevant convars to disable CS:GO server hibernation or bot-kicking:
sv_hibernate_postgame_delay 9999999 sv_hibernate_punt_tv_clients 0 sv_hibernate_when_empty 0 bot_auto_vacate 0 bot_join_after_player 0 mp_autokick 0
- Looping bots will repeat any replays on tracks and styles specified for it in
- Removed usage of
bot_quotaand started to call BotAddCommand directly which works really well and is really cool and I love it. bot_quota sucks. commit - Replay playback should work a bit better if the tickrate was changed by TickrateControl (#1018).
- Post-run frames / postframes added to replays. main commit
- usercmd mousex/mousey and forwardmove/sidemove added to replay file.
- When spectating replays, the percentage-complete now goes below 0% for preframes and above 100% for postframes.
- Fixed replay bots teleporting on the last frame of a replay and screwing up prediction.
- the
!replaymenu now includes +1s, -1s, +10s, -10s, and 2x speed options to rewind/fastforward. commit - Stage stuff: initial commit, and another
- prebuilt map stages using mod_zone_checkpoint_X / mod_zone_bonus_X_checkpoint_X work now commit
- Check out https://github.com/PMArkive/fly#trigger_multiple for the format used for prebuilt map zones
- prebuilt map stages using mod_zone_checkpoint_X / mod_zone_bonus_X_checkpoint_X work now commit
Timer configs
shavit-styles.cfgforce_timescaleadded. commit
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_ignorezto draw zone beams through walls (#618)
- Zone beams can now be changed for each zone type.
shavit-chat.cfg- added
w(WR Count) andW(rank out of WR holders) options to theranksfiltering - added
{pts},{wrs}, and{wrrank}for chat ranks
- added
shavit-replay.cfg"Looping Bots"section added to configure looping bots.- You can grab the default config from here:
eab31036a4/addons/sourcemod/configs/shavit-replay.cfg (L37-L84)
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_resettargetnameto the timer doesn't break some maps.
API
- Constants, enums, and defines:
- Added
MAX_STAGES - There's 8 bonuses now.
Track_Bonus(1) throughTrack_Bonus_Last(8) - Removed
Replay_Legacy - Added
Replay_DynamicandReplay_Prop - enums
ReplayStatusandReplayBotTypehave been de-typed so the values can be used as ints. REPLAY_FORMAT_SUBVERSIONis now up to0x08(+4)! Progress!
- Added
- Added natives:
Shavit_GetStyleSetting,Shavit_GetStyleSettingInt,Shavit_GetStyleSettingBool,Shavit_GetStyleSettingFloat,Shavit_HasStyleSetting,Shavit_SetStyleSettingFloat,Shavit_SetStyleSettingBool, andShavit_SetStyleSettingInt- Any key in
configs/shavit-styles.cfgcan now be grabbed with these - Probably will be used to replace
specialstringusage eventually
- Any key in
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 astylestrings_tas an alternative toShavit_GetStyleStrings.Shavit_GetChatStringsStruct- Fills achatstrings_tas an alternative toShavit_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_DeleteWRShavit_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:
GetSpectatorTargetadded to shavit.inc. Target might NOT be a client (like when watching aReplay_Prop)GetTrackNameadded to shavit.inc.SteamIDToAuthadded to shavit.inc. ConvertsSTEAM_0:1:61and[U:1:123]to123.- Now used by
sm_wipeplayer,sm_ccadd, andsm_ccdelete.
- Now used by
- Changed natives:
Shavit_OnStartcan NOT stop StartTimer anymore. UseShavit_OnStartPreto stop StartTimer.Shavit_HijackAnglesnow has aint ticksparameter.Shavit_GetWRCountnow 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_StartReplaynow returns an replay entity index (int) instead of abool.Shavit_GetReplayBotFirstFramerenamed toShavit_GetReplayBotFirstFrameTimeShavit_GetReplayPreFramerenamed toShavit_GetReplayPreFramesShavit_GetReplayPostFramerenamed toShavit_GetReplayPostFramesShavit_GetReplayCachePreFramerenamed toShavit_GetReplayCachePreFramesShavit_GetReplayCachePostFramerenamed toShavit_GetReplayCachePostFramesShavit_GetPlayerPreFramerenamed toShavit_GetPlayerPreFramesShavit_GetTimeOffsetreplaced with toShavit_GetZoneOffset
- Changed Structures:
timer_snapshot_tnow includesfAvgVelocity,fMaxVelocity,fTimescale,iZoneIncrement, andfTimescaledTicks.fTimeOffsetwas replaced withfZoneOffset.
cp_cache_tnow includesiSteamID,aEvents,aOutputWaits, andvecLadderNormaliTimerPreFramesremoved.
- 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- UseGetEngineVersioninstead.Shavit_GetDB- UseShavit_GetDatabaseinstead.Shavit_GetTimer- Use different natives.Shavit_GetWRTime- UseShavit_GetWorldRecordinstead.Shavit_GetPlayerPB- UseShavit_GetClientPBinstead.Shavit_GetPlayerTimerFrameShavit_SetPlayerTimerFrame
- Changed forwards:
Shavit_OnUserCmdPreno longer has thestylesettings_tparameter. Use some of the Shavit_GetStyleSetting* natives with the option names from shavit-styles.cfg instead. Examples:Shavit_GetStyleSettingBool(style, "unranked")orShavit_GetStyleSettingInt(style, "prespeed")Shavit_OnTimeIncrementno longer has thestylesettings_tparameter.Shavit_OnTimeIncrementPostno longer has thestylesettings_tparameter.Shavit_OnFinishgainedfloat avgvel, float maxvel, int timestampShavit_OnFinish_Postgainedfloat avgvel, float maxvel, int timestampShavit_OnFinishMessagenow has amessage2parameter that is used to print an extra message to spectators and the player. Curently prints avg/max velocity and perf percentage. commitShavit_OnWorldRecordgainedfloat avgvel, float maxvel, int timestampShavit_OnTopLeftHUDwill now run more often so plugins like 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. PreviouslyShavit_OnStartwould'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
https://github.com/shavitush/bhoptimer/releases/tag/v2.6.0
06addf326f (v2.6.0)
cbda666700 (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_tnow contains time and distance offsets.
- Changed natives:
Shavit_DeleteReplaynow 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.5.7a
7567cde52d
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_multiplierandjump_bonusto 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 messageshavit_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
https://github.com/shavitush/bhoptimer/releases/tag/v2.5.6
c8467630ab
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_stagesandsm_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_GetReplayBotCurrentFramepointing 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_teleare 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.5.5a
979c911a26
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.
- 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`;
- Disable the
shavit-rankingsmodule if it's in use. - Start the server, lock it with a password so no one can enter it.
- Run the command
sm_migration allwith root access. - Wait up to 1 minute.
- 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_migrationcommand 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_GetClientFrameCountShavit_GetReplayFrames
- Added forwards:
Shavit_OnFinishMessage- allows you to modify the finish messages in chat.
v2.5.5 - asdf - 2019-07-14 - shavit
https://github.com/shavitush/bhoptimer/releases/tag/v2.5.5
e4c8be08bc
This update features automatic database migrations. Backup your database and read this gist before updating.
(gist enclosed in this spoiler text below:)
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.
prespeedsetting in style config now supports the value of 2. If it's set to 2, the value ofshavit_core_nozaxisspeedwill 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_llrecalccvar, 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_recalcalldoes 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.5.4
88b8b9a079
This is a hotfix update with some changes requested shortly after the v2.5.3 update.
- Added
force_groundkeysstyle 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.5.3
2a1914010c
- 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 checkpointShavit_OnStopPre- called when the timer is stopping. Ignored whenShavit_StopTimeris called with thebypassparameter set to true. Returningfalsehere will prevent the timer from stopping.
v2.5.2 - asdf - 2019-03-29 - shavit
https://github.com/shavitush/bhoptimer/releases/tag/v2.5.2
5fb84e6ace
- 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.5.1
c631f2f549
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
https://github.com/shavitush/bhoptimer/releases/tag/v2.5.0
95d9cad309
- Added
enabled,inaccessibleandkzcheckpointsstyle 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_BYdatabase 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_humanteamsetting 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 checkpointShavit_OnSave- called upon saving a checkpoint
v2.4.1 - asdf - 2019-03-08 - shavit
https://github.com/shavitush/bhoptimer/releases/tag/v2.4.1
a0d205247a
- Fixed exploit related to checkpoints.
- Added
sm_wipeplayercommand. - Added style ordering to menus. Use
orderingstyle config to order styles without changing their IDs. - Added the ability to stop replay playback as the requester.
- *Improved logging of single-record deletion.
!replaycommand 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. !rshows 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
targetnameandclassname. - Fixed error when certain commands are used from the server's console. This fix allows them to work now.
- Changed
!deleteallso 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_ChangeClientStyleShavit_ReloadLeaderboardsShavit_DeleteReplayShavit_GetOrderedStylesShavit_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
https://github.com/shavitush/bhoptimer/releases/tag/v2.4.0
1cd4b4c9c3
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_GetPlayerPBandShavit_GetWRTime. UseShavit_GetClientPBandShavit_GetWorldRecordrespectively. - Added
shavit_rankings_weightingcvar. This allows you to control the weighting in rankings. Set this to1.0to disable weighting and instead give users the exact amount of points shown in record submenus. - Changed
users.namecollation toutf8mb4_general_ci. This is not an automatic migration and will require manual action for existing installations. - Added
shavit_core_nochatsoundto 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.3.6
98d9b29c1d
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
https://github.com/shavitush/bhoptimer/releases/tag/v2.3.5
f527455a2d
- 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.cfgpossible
v2.3.4 - Pausing development for a while - 2018-11-03 - shavit
https://github.com/shavitush/bhoptimer/releases/tag/v2.3.4
398c9ee84e
- Added practice mode alert toggle to !hud.
- Fixed several issues with CP menu prev/next buttons.
- Replaced
halftimestyle setting withtimescale. 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.3.3
b8d0522e96
- 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_OnReplayStartandShavit_OnReplayEndforwards.
v2.3.2 - asdf - 2018-10-03 - shavit
https://github.com/shavitush/bhoptimer/releases/tag/v2.3.2
73fdf77d36
- Fixed !ranks being broken for some setups.
- Fixed core loading when rankings is unloaded.
v2.3.1 - asdf - 2018-09-22 - shavit
https://github.com/shavitush/bhoptimer/releases/tag/v2.3.1
e9a203ba94
- 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.3.0
c774f41ac8
- 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.2.0
945b1c85d0
- 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_speclistfor misc's !speclist. - Added
shavit_hud_speclistfor 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.1.2
a5c68940c6
- 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.1.1
fda9d81bc7
- 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.1.0
3e558558b0
- 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_humanteamis respected by shavit-misc. The TF2 equivalent also is. - Now
shavit_replay_defaultteamis always respected, regardless of if the map has a spawn point for the team. - Rewrote admin menu integration. Use the
shavit_adminoverride 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.0.3
c294408c43
- Added style permissions:
- Added
Shavit_HasStyleAccessnative. - Added
permissionssetting to styles. Use like "p;style_tas" for example. First section is the flag needed, and the second section is the override for it.
- Added
- 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.0.2
a066507213
- 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.0.1
c28de91fd4
- 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
https://github.com/shavitush/bhoptimer/releases/tag/v2.0.0
f9b67450db
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
+strafedetection. - Added strafe/sync counters.
- Added custom
sv_airacceleratevalues 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 arcanerather than!wr bhop_arcane_v1for example). - Added !rr command to see the recent world records.
- Fixed all reported bugs.
v1.4b - hotfix - 2015-09-21 - shavit
https://github.com/shavitush/bhoptimer/releases/tag/1.4b-hotfix
489a6826d7
Fixed compilation for the SM 1.7.3 compiler.
v1.4b - more plugins - 2015-09-20 - shavit
https://github.com/shavitush/bhoptimer/releases/tag/1.4b
519a647a53
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
https://github.com/shavitush/bhoptimer/releases/tag/1.3b
fd4bb2c672
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
116cbab219