New features and other changes in the v1.12 release of XASECO:
- * new database and query optimizations:
- * these database optimizations are automatically applied once the first time this release is run, but will take a while depending on the size of the database and the speed of your MySQL server, so be patient as they could easily take several minutes (especially the 'rs_times' changes) -- interrupting this process could result in a corrupt database, so... don't
* the Score fields in the 'records' and 'rs_times' tables are converted from MediumInt to Int, increasing the maximum race time from 140 minutes to 596 hours
* the 'records' Id, 'rs_times' ID and 'players' TimePlayed fields are also increased to Int, and the 'rs_karma' Score field is reduced to TinyInt
* the keys on the 'records' and 'rs_times' tables are reorganized and expanded to improve the speed of various queries on those tables
* RASP's clean-up of unused 'records' and 'rs_times' entries at start-up now only happens if $prune_records_times in rasp.settings.php is true, resulting in faster start-up
* the speed of this clean-up is improved by different queries and related processing, and it is logged in more detail
* preparation of the player stats panels at the scoreboard is sped up with an improved query and related processing
* the speed of the /server and /nations commands is improved by different queries and related processing
* the speed of the /topdons command is improved by an appropriate key on the 'players_extra' table
* you can verify the result of all conversions against the MySQL schema in the localdb/*.sql files using SHOW CREATE TABLE queries or the 'mysqldump --no-data' command
* XASECO's main tables are created automatically the first time this release is run, analogous to RASP's 'rs_*' tables, thus simplifying installation
* the 'id' member of the Player object (holding the dedicated server's PlayerId value for a player) is renamed to 'pid' and 'id' now contains the database id from the 'players' table, analogous to the Challenge object -- this eliminates most player ID queries
* thanks to Tyrann for providing dumps of a large database to analyze & test with
- * new onDedimaniaRecord event to indicate a new/improved/secured Dedimania record, including its position -- note that a Dedimania record is not official until confirmed after the end of a track
* the onLocalRecord event also includes a new pos(ition) field
* new onJukeboxChanged event to signal changes to the jukebox, passing along an action string ('add', 'clear', 'drop', 'play', 'replay', 'replay', 'restart' & 'skip') and the pertaining track data (or null for the 'clear' action)
* new onMusicboxReloaded event to alert that the music server config file (musicserver.xml) was reloaded via /music reload
* new onDonation event to indicate that a new donation was completed, including login and coppers amount
* on TMF, restarting when at least one player already has a finish time or a score results in the scoreboard and ChatTime countdown, thus allowing time for the normal onNewChallenge and onEndRace events instead of the onRestartChallenge one -- for instant restarts the latter is issued as before, and the two restart types are logged distinctly
- * new /sectms command to display the sector times (if available, as they're only being stored since v1.06) for all local records on the current track
* new /dedisectms command to display the sector times for all Dedimania records on the current track
* on TMN there's room for the first 9 sectors, on TMF for the first 12 sectors of each record -- a '+' indicates when there are more sectors than can be displayed
* PlayerFinish callbacks are now ignored when not in status 4 (Running - Play), again reducing processing overhead during the end and start of tracks
* once a track is being replayed (after /replay or /admin replay), then /playtime and the total playtime message at the end of that track will include the number of replays and the overall playtime (thanks Milenco)
* at start-up the dedicated server connection, LocalDB and RASP messages are now logged with timestamps
* updated the stripColors function to (even) better reproduce the way the game strips incomplete tags (thanks Slig)
* all Dedimania communication now occurs via port :8002 only, and you should remove the RPC4/server.php link from dedimania.xml
* improved debug logging in the Dedimania plugin
* upon shut down (via the /admin commands) or Fatal Error, all ManiaLinks on all connected clients are cleared (thanks Terron)
* various tweaks and corrections to plugin.matchsave.php
* retired chat.vote.php with its obsolete /vote and /score commands -- you can manual delete the empty 'votes' table via a DROP TABLE query - * these database optimizations are automatically applied once the first time this release is run, but will take a while depending on the size of the database and the speed of your MySQL server, so be patient as they could easily take several minutes (especially the 'rs_times' changes) -- interrupting this process could result in a corrupt database, so... don't
- * the onLocalRecord event is also issued for equalled records -- fixed
* the /list & /autojuke nofinish & norank commands cause PHP warnings for players without finished tracks -- fixed
* missing title or artist tags of .OGG songs can cause PHP warnings -- fixed
* the TMXInfoFetcher can cause PHP warnings upon empty results from TMX API calls -- fixed
- Important:
* To register your server with the central Dedimania database, you must copy the login and password values in the <masterserver_account> section from your server's dedicated.cfg (TMN) or dedicated_cfg.txt (TMF) file into the corresponding section of the dedimania.xml file, and add the 3-character nation abbreviation. Instead of the password you can also use the community code for your server by using the server login/password on the official site for your game (TMO/TMS/TMN) or on this page for TMF.
* Open port 8002 on your firewall/router for communication with the central Dedimania server.
* In the zip file, all *.XML and *.PHP config files are now located inside the newinstall/ directory. This means that you can (and have to) unzip the download and replace all the PHP code files, without worrying about overwriting your customized config files. However, for every XML/PHP config file that was updated (see above), you must replace your version with the one from the newinstall/ directory, or compare them and add any new/changed configuration settings to your version to insure the system remains working correctly.
* For a new installation, go into the newinstall/ directory and move all *.XML files into the main directory, next to aseco.php, and *.PHP files into the includes/ directory.
Enjoy,
Xymph