mirror of
https://github.com/shavitush/bhoptimer.git
synced 2025-12-07 18:38:26 +00:00
A bunnyhop timer plugin for Counter-Strike: Source, Counter-Strike: Global Offensive and Team Fortress 2.
bhop-timerbunnyhopcounter-strike-global-offensivecounter-strike-sourcecsgocsshacktoberfestkreedzkzsourcemodsourcepawntimer
| configs | ||
| gamedata | ||
| maps | ||
| scripting | ||
| sound/shavit | ||
| webserver | ||
| .gitattributes | ||
| .gitignore | ||
| .travis.yml | ||
| 1.2b_todo.md | ||
| 1.3b_todo.md | ||
| 1.4b_todo.md | ||
| LICENSE | ||
| README.md | ||
| smbuild | ||
Build status
shavit's simple bhop timer
a bhop server should be simple
Requirements:
- SourceMod 1.8 and above
clientprefsplugin/extension. Comes built-in with SourceMod.
Optional requirements:
- DHooks - required for static 250 prestrafe (bhoptimer 1.2b and above)
Installation:
- Add a database entry in addons/sourcemod/configs/databases.cfg, call it "shavit"
"Databases"
{
"driver_default" "mysql"
// When specifying "host", you may use an IP address, a hostname, or a socket file path
"default"
{
"driver" "default"
"host" "localhost"
"database" "sourcemod"
"user" "root"
"pass" ""
//"timeout" "0"
//"port" "0"
}
"shavit"
{
"driver" "mysql"
"host" "localhost"
"database" "shavit"
"user" "root"
"pass" ""
}
}
- Copy the desired .smx files to your plugins (addons/sourcemod/plugins) folder
2.1. Copy shavit.games.txt to /gamedata if you have DHooks installed. - Copy base.nav to the
mapsfolder. - Copy the files from the
soundfolder to the one on your server. Make sure to also have equivelant bz2 files on your FastDL server! - Copy the
configsfile to your server and modifyshavit-sounds.cfgif you wish to. - Restart your server.
Required plugins:
shavit-core - no other plugin will work without it.
shavit-zones - required for server functionality and for shavit-misc.
shavit-wr - required for shavit-stats, shavit-replay, shavit-sounds, shavit-stats and shavit-rankings.
shavit-rankings - required for some functionality in shavit-chat.
Todo for 1.5b release (out of beta!)
General
- Migrate every menu to the 1.7 transitional syntax.
- Migrate DBI to the 1.7 transitional syntax.
- Migrate events to the 1.7 transitional syntax.
- Migrate ADT_Arrays to ArrayList.
Core
- Fix chat colors for CS:S.
- Add table prefix. (configs/shavit-prefix.txt)
- Add shavit_core_nostaminareset ("easybhop")
Make a global enumerator/variable with per-style settings (bitflags)- configs are canceled, just recompile the plugin with your own edit ofshavit.inc.- Add unranked styles.
- Add native that will execute threaded MySQL queries and allow callbacks - including safety checks, to prevent error spams. (Migrate DBI to new syntax first!)
- Measure strafe sync, also have it in the Shavit_OnFinish forward.
- Add bonus timer.
HUD
- HUD toggling command. (
sm_hud) - Zone (start/end) HUD toggling command. (
sm_zonehud) - [CS:GO] Replace "- Replay Bot -" for bots with an underlined and pretty text.
- Remove
sm_zonehudand makesm_huda menu that can toggle HUD, zonehud and spectators list in a panel. - Add spectator list.
- Show time in a "TIME/RECORD" format for replay bots.
- Support for bonus timer.
Replay
- Add admin interface. (delete replay data)
- Remove replay bot data on deletion of the #1 record.
- Make a boolean native that confirms if a client is a replay bot with loaded data. (used for
shavit-hud)
WR
- Make
UpdateWRCachesmaller. Will result in extra optimization and more uhm.. dynamic! - Add a cvar that limits the amount of records in the WR menu. (default: 50 |
shavit_wr_recordlimit) - Remove
sm_wrswand makesm_wra dynamic menu with all difficulties. (dynamic!) - [rankings] Show points in WR menu.
- Add strafe sync to the WR menu where available.
- Add
sm_bwrsm_bonuswrsm_bonusworldrecord. - Use unix timestamps for future record dates.
Stats
- Make style names editable from shavit.inc (like I did to the rest of modules) (dynamic!)
- Make a submenu per style, for aesthetics.
- [rankings] Points implementation.
Miscellaneous
- Allow changing the prespeed limitation.
Sounds (NEW!)
- Play sounds (from config file |
configs/shavit-sounds.cfg) on new events. - On new #1.
- On personal best.
- On map finish.
Rankings (NEW!)
- Create tables. (
mappoints,playerpoints) - Allow ROOT admins to set ideal points for map and time for the default style. (
sm_setpoints <time in seconds> <points>) - Add
sm_points. - Implement an algorithm that will calculate points for a record, will also take the time and style into account. Add a +25% bonus if the time is equal or better than the ideal one.
- Use a weighting system for points calculation. The highest ranked time will be weighted 100% and worse times will be weighted as 5% less each time.
- Calculate points for players once they connect to the server.
- Add
sm_topthat will show the top X players, sort by points. - Calculate rank for players once they connect to the server.
- Add
sm_rank. - Calculate points per scored time once it's added to the database.
- Recalculate points for every record on the current map when a ROOT admin changes the point value for it. (retroactive!)
- Add natives.
float Shavit_GetPoints(int client)int Shavit_GetRank(int client)void Shavit_GetMapValues(float &points, float &idealtime)
Web Interface
- Implement points.
Chat (NEW!)
- Add logic that processes chat without requiring an external plugin such as
Simple Chat Processor (Redux). (might cancel this one) - Custom chat titles/colors for rank ranges. (will require shavit-rankings)
- Custom chat titles/colors per individual player.