Move remaining shavit-rankings dependent calls (#1043)
If the shavit-rankings plugin isn't loaded, the calls to its natives will cause an exception and the client's messages will not be formatted correctly.
Add native for getting the number of stages
Implemented native for getting number of stages and allowed practice mode to view stage times.
Added WR stage time comparisons for when a user enters a stage zone.
It's important that the stage zone number starts at two. It may be preferred to remove the user input of stage numbers and just auto increment as stages are added. Stage 1 should be the start zone and just have any additional stages increment from there. I'll readdress this if it's necessary.
Add translations for WR stage time comparison messages
Accidentally undid a change from a previous commit.
I didn't have a merge conflict, so I'm unsure why it got replaced.
Combine stage time translations into one
Implemented suggestions to translations and changed the stagetimes table
The stagetimes table no longer uses auth as a primary key, so it will now replace the old WR stage time.
However, the auth is still stored, so it can be used to reference the player and potentially a players PB.
Update callback name for replacing stage time for logging.
also my DeleteWR() query that used variables to be fancy is unneeded and just breaks sqlite compatibility
have you noticed that i've been winging it with all the sql stuff?
* cleanup GetTrackName()
* a few more changes to change mod_zone_bonus & add Track_Bonus_Last
* fix undefined symbol sTrack
* fixup !bwr for multiple bonuses
* fix GetTrackName() after I broke it
* add bonus number param to help text of sm_bwr
* fix !wr after I broke it adding !bwr [bonus number]
* ignore checkpoint zones for now because nothing is ready for them
* update points for bonus #2 through #8 at same time
so instead of something like `9 (track count) * 22 (style count)` queries, it'll do `3 (main, bonus1, rest of bonuses) * 22 (style count)` queries and the rest of the bonuses on the recalc all in the same query
* make !wr say map not found when map not found...
* use translation string for 'map was not found'
* stockify GuessBestMapName() and also use in sm_tier
* fix formatting
Co-authored-by: KiD Fearless <kidfearless1@gmail.com>
Now I can push database migrations without making the plugin's users do the querying on their own.
List of migrations:
* **Converted all SteamIDs in the database from SteamID3 to Steam Account ID format. The difference is simply stripping of the [U:1: prefix and ] suffix. This change speeds up the queries and reduces the database's size by a lot.**
* Removal of `workshop/` paths from all map names in the database.
* Added index to `lastlogin` to speedup the filtering I added to rankings with `shavit_rankings_llrecalc`.
* Removed `country` from database. It was completely unnecessary.
* Converted IP addresses from plaintext to a single 4 bytes integer.
* Converted `date` of records from a string to integer.