* Deletes invalid times/chat records before adding the new constraints.
* Use of `ip` index while converting the IP addresses.
* Limit IP conversion transaction to 10k queries to prevent memory leak on large datasets.
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.
* in table `playertimes` add `time` to the `map` index - it should look like this:
```sql
INDEX `map` (`map`, `style`, `track`, `time`)
```
* in all tables, change all CHAR(x) to VARCHAR(x). the following are the changes:
- `chat.auth VARCHAR(32)`
- `chat.ccname VARCHAR(128)`
- `chat.ccmessage VARCHAR(16)`
- `users.auth VARCHAR(32)`
- `users.country VARCHAR(32)`
- `users.ip VARCHAR(64)`
- `maptiers.map VARCHAR(128)`
- `playertimes.auth VARCHAR(32)`
- `playertimes.map VARCHAR(128)`
- `playertimes.date VARCHAR(16)`
- `mapzones.map VARCHAR(128)`
[Promising] Promises : cud u make a setting to disable this:
[Promising] Promises : [ Timer ] WARNING: You're now in practice mode. Your times WILL NOT be saved and will be only displayed to you!
* Added `oldtime` and `perfs` parameters for forwards that missed them.
* Added `iMeasuredJumps` and `iPerfectJumps` to snapshots.
* Added a database migration to add `perfs` column.
* Added perfect jumps% to CS:S keyhint HUD. Not necessary in CS:GO due to annoying limitations.
* Added perfect jumps% to WR menu.
* Added `Shavit_GetPerfectJumps` native.
* Added `Shavit_HasStyleAccess` native.
* Added `permissions` setting to styles. Use like "p;style_tas" for example. First section is the flag needed, and the second section is the override for it.
* Changed default (1) to block button inconsistencies.
* Made the duration of inconsistencies less annoying.
* Changed the first option to 2, which stops the timer on inconsistencies.
This commit uses a different method of autobhop.
Benefits over the old one:
* Doesn't break with unusual trigger_push setups (i.e. bhop_arcane_v1, bhop_cutekittenz, bhop_ml - or any map with badges' "unbreakable boosters" prefab).
* Doesn't modify the usercmd, therefore other plugins can see the jump button being in use.
`shavit_misc_prespeedlimit`'s behavior was changed and is now `shavit_misc_prestrafelimit`. The value determines the maximum allowed prestrafe in the start zone *added* to the style's run speed. So i.e., Scroll can prestrafe up to 280 (in reality, 278) and Normal can up to 290.
The default settings for `shavit_core_blockprejump` and `shavit_misc_prespeed` were changed due to this commit.
`shavit_misc_createspawnpoints`'s default setting was changed to 6 as 32 didn't make much sense.