Releases: Letaryat/poor-sharptimer
Pre-release 0.3.1h
- improve afk detection
- adjust spectator afk logic
- add logic to detect endtouch on fake zone (and start timer then)
- invalidate timer on fake start entry (THIS FIXES THE CHECKPOINT ERROR)
- clear currentmapcheckpoint on respawn just to make sure
- allow disabling remote_data and fallback to local data (new config.cfg)
- disable max completions logic when !importpoints
- pass the mapname (and tier) through !importpoints
- fix one given key error
- suppress the other one
- suppress trigger_teleport hook exception on disconnected player
- streamline fastforward style
Pre-release 0.3.1g
!! update en.json !!
- ignore max completions limit if player beats pb
- add cfg variable to modify HUD updates per second
- add afk management options
- actually maybe probably fix bot collision
Pre-release 0.3.1f
- fix bot collision
- fix bot chatter
- commit missing variable
Pre-release 0.3.1e
- remove max free points message
- add max completions to point calculations
- make points formula configurable
Pre-release 0.3.1d
- adjust/fix replaybot spawning
- stopreplay if player changes team
Pre-release 0.3.1c
- adds configurable bonus point multiplier
- removes some legacy points stuff
- fix some points logic
- default to T1 if tier not specified
@M-archand contributions
- address OnSyncTick exception
Pre-release 0.3.1b
- rework !importpoints to scrape every single record instead of just current map
- deprecate !databasetojson
So, to upgrade to new points, you can now do !resetpoints followed by !importpoints
Pre-release 0.3.1a
initial new points testing
It is highly recommended to wipe ALL player points with !resetpoints
What's changed?
The old points system has been removed
The new points system was implemented by following the CSGO SurfTimer methodology
How does it work?
you can refer to their github readme here
First, each completion is given a baseline set of points, listed below
- Tier 1: 25
- Tier 2: 50
- Tier 3: 100
- Tier 4: 200
- Tier 5: 400
- Tier 6: 600
- Tier 7: 800
- Tier 8: 1000
Then, we calculate max points based on the following formulas, which take in to account tier and completions
- Tier 1: WR = MAX(250, (58.5 + (1.75 * Number of Completes) / 6))
- Tier 2: WR = MAX(500, (82.15 + (2.8 * Number of Completes) / 5))
- Tier 3: WR = MAX(750, (117 + (3.5 * Number of Completes) / 4))
- Tier 4: WR = MAX(1000, (164.25 + (5.74 * Number of Completes) / 4))
- Tier 5: WR = MAX(1250, (234 + (7 * Number of Completes) / 4))
- Tier 6: WR = MAX(1500, (328 + (14 * Number of Completes) / 4))
- Tier 7: WR = MAX(1750, (420 + (21 * Number of Completes) / 4))
- Tier 8: WR = MAX(2000, (560 + (30 * Number of Completes) / 4))
Next, we grab the top ten players, check if the current completion is within it, and distribute points accordingly
- Rank 1 = WR
- Rank 2 = WR * 0.8
- Rank 3 = WR * 0.75
- Rank 4 = WR * 0.7
- Rank 5 = WR * 0.65
- Rank 6 = WR * 0.6
- Rank 7 = WR * 0.55
- Rank 8 = WR * 0.5
- Rank 9 = WR * 0.45
- Rank 10 = WR * 0.4
Finally, if the player is not in the top 10, we check if they are above the 50th percentile, in a set of 5 groups
- Group 1 (top 3.125%) = WR * 0.25
- Group 2 (top 6.25%) = (Group 1) / 1.5
- Group 3 (top 12.5%) = (Group 2) / 1.5
- Group 4 (top 25%) = (Group 3) / 1.5
- Group 5 (top 50%) = (Group 4) / 1.5
All points are then added to the players total points
Pre-release 0.3.0t
- made respawnpos less buggy for both mg & surf
- compile with cs# v281
@deabb additions
- make use of .HasFlag
- fix forced speed mult being applied to ladders
- bump api requirement to v281
0.3.0
The QOL Update
⚠️ WARNING⚠️ DATABASE CFGS HAVE CHANGED
MAKE SURE TO UPDATE YOUR SPECIFIC DATABASE CFG
Release notes
- added sharptimer_style_points_enabled to disable points rewarded for styles
- completely refactor db utils for easier modification of dbs
- added sqlite support
- added translations (en, fi, fr, nb, pl, sk, sv)
- added fastforward and sideways styles
- PlaySound function
- put command check functions on PlayerChecks.cs
- enable/disable sound by default
- change sounds for timer, respawn, checkpoint, checkpoint error, teleport, pb & sr
- play sr sound for all players
- fixed missing space on langs
- enable/disable sr ad option
- enable/disable messages ad option
- separate timer for both
- custom ad messages can be added in cfg/SharpTimer/admessages.txt
- moved some global vars (potential headache fix!)
- some styles break on spawn so now style is set when spawned (if player dies or changes team)
- on map finish only print style if styles are enabled
- simplified style functions
- more zone settings
- added PlayerStats table prefixes
- EXAMPLE = PlayerStats_EXAMPLE (for multiple servers)
- damage hook changes
- allow rank commands while dead/in-spec
- maxglobalfreepoints math fix
- !fakezones menu
- only play sr sound if sounds are enabled
- fix bonus finish msg in lang
- use PlaySound method for sounds enabled check
- add !adminnoclip (for making fake zones easier)
- fix saving player times to postgres
- !rank now respects style
- fix style ranking on hud
- added sql migrations for easier table updates
- added more style aliases
- removed timer from sql check
- moved sqlcheck to roundstart (to ensure cfg is parsed first)
- rank command handler respects bonus now
- made discord style webhook prettier
- made !stage quietly stop the timer
- updated jsontodatabase tool to make json -> sqlite transition easier
- fix all db types not generating PlayerStats on first launch
- ad messages are only custom now
- regular ad messages stored in lang
- print map time to allchat
- save stage times to db
- add stage records
- only save checkpoint times on normal style
- move admin noclip to cheats perms
- only save stagetimes when in normal style
- fixed silly missing comma in stagetime db queries
- only print stagetime if sr
- fixed strange timer stopping bug
- stage time records now in cfg
- !resetpoints command (WARNING: RESETS ALL PLAYER POINTS TO ZERO)
- only play sr sound if player sounds enabled
- moved sqlcheck (fixes weird db bugs)
- remove unused enabledb variable
- fixed PlayerStats table references
- merged !replay and !replaysr
- remove unused lang
- fix case of sr time difference not displaying
- add option to disable stage record broadcasts
- a slew of options to discord embeds (see updated discord config)
- setting to disable hud rank icons
- only show style on hud if styles enabled
- customizable ranks (see ranks.json)
- sync % on hud
- ability to globally enable/disable hud elements
- added replay bot (REQUIRES STFIXES)
- remove test message from admessages.txt
- fix RunCommand-based styles after 8.14.2024 valve "update"
- fix sync memory leak/redo sync logic
- fix respawning on 0,0 coords
- fix replay bot getting kicked
- disable sv_cheats 0 enforce
- added color gradient to HUD speed (sharptimer_hud_secondary_color_dynamic true in config.cfg)
- add ability to disable checkpoint verification (located in config.cfg)
- fix double respawning
- reset sync upon leaving startzone
- remove hide players (broken)
- remove trigger push (broken, use STFixes)
- fix gamedata after armory update
- revert player spawn changes
- fix bug saving checkpoint times to json for style runs
- fully custom ranks
- Cleanup dynamic color format + keyEnabled/hudEnabled
- made respawnpos less buggy for both mg & surf
- compile with cs# v281
- make use of .HasFlag
- fix forced speed mult being applied to ladders
- bump api requirement to v281
Many of these changes were made possible by our contributors :)
@exkludera
@razpbrry
@M-archand
@Letaryat
@NordicGamerFE
@deabb
@jvnipers
@B3none
@Julienhqr
@Kanetrix