How to extend the maximum allowed time for records in Xaseco

|
(Note: this is a guide for RPG server admins)
(Note 2: this is guide is incomplete and soon obsolete)
Driving long RPG's for the first time is probably the best part with RPG for me. Only then I get the adventurous feeling that RPG's are supposed to have. When you finally finish, you of course want to be rewarded for your hard work, by getting a spot on the local records list. But there is a problem: there is a upper limit for times in Xaseco of 139:48.60 minutes (or roughly 2.3 hours). Any record above this time, will show up as exactly "139:48.60". Read on to find out how to extend this time limit to 279 minutes (or roughly 4.6 hours).

To fix this, you need to do some changes in the Xaseco database. Only the host of the server (often, but not always, the MasterAdmin) have access to this. You do not even have to shut down Xaseco to do this, but I can not confirm that the records from the track you are currently driving will be saved when the track changes (although I can't see why they will not be saved either).

Method 1 - PHPMyAdmin
Go to your PHPMyAdmin site, log in and find the Xaseco database (it's called "3tmf_xaseco" on my screenshots, but it can be named anything).

Press the image to see a larger image.
Click your way into the "Records" table, located in the left menu.

Press the image to see a larger image.
On the "Score" field, press the "Edit" button (as shown on the screenshot).


Under "Attributes", select "UNSIGNED". Press Save. That was all, your server can now accept times up to 279 minutes.

Method 2 - MySQL Query
Note: I have not tried this myself, but it will probably work, as it's just the same as above, just in command form.

This is for people who do not have access to PHPMyAdmin, and only a MySQL query console. To change the "Score" field from a signed to an unsigned mediumint, copy this SQL query:

ALTER TABLE `records` CHANGE `Score` `Score` MEDIUMINT( 9 ) UNSIGNED NOT NULL DEFAULT '0'

And that's it. Everything should now work.

The theory behind this is that by default, this database field uses a signed mediumint (3 bytes). The minimum and maximum values for this numeric data type are -8388608 and 8388607 (milliseconds, or 139 minutes). When you set this field's attribute to an unsigned mediumint, all you do is make the minimum value go to 0, hence making room for more numbers on the positive side. So an unsigned mediumint goes from 0 to 16777215 (milliseconds, or 279 minutes). This is the maximum value you can get without going up to 4 bytes (int). I'm no SQL expert myself, so you can read more about numeric data types in the official MySQL documentation.

0 comments:

Post a Comment