Outgun / 0.5.0-E / Revisions readme

Outgun 0.5.0-E revisions

This page explains the fixed bugs and added features in more detail. For now no revisions before 7 are documented here. All available information about them is in the news archive.

Revision 7

Summary

Revision 7 is a server-only update. It adds console commands for remote administration of a server. This has already been distributed through PHIN. In addition to that, a fatal bug is fixed regarding servers with a player limit less than 16. The executable update is sufficient: nothing else has changed from rev. 6.

Player limit bug

A server, when running with a player limit less than 16, used to crash in certain conditions when there are many players on and a new one enters. The crash is an invalid page fault in outgun.exe. For 0.5.0-E the crash address is somewhere near 446e18, depending on the revision.

The specific conditions when the crash occurs are even teams in numbers but uneven in tournament based strengths, with the blue team less strong and all blue player positions from 8 up to the limit in use (which is always the case with a limit of 8 or less). Also, player limits more than 16 could cause smaller problems, like a player not being accepted to the game even when the server is not really full.

This bug has been in Outgun probably all the time when the player limit has been changable, but it’s not sure if it made the server crash on versions older than 0.5.0-E: it might just result in weird behaviour for players.

In all prior versions, the only workaround is to keep the player limit at 16 (preferably) or more. The fix in the source code is a simple change on one line: in outgun.cpp near line 5050 (for revision 6) the line targ = 8; is changed to targ = TSIZE;.

Administration commands

The idea of the new administration system (using the tournament login for authorization) is taken from Amok’s 085-09x source codes. A file called admins.txt should be created in Outgun’s directory, and approved administrators’ names listed in that file, one on each line. After that, the admin commands are automatically available to those players when they’ve either entered their tournament password or had their IP approved by the server’s auth.txt.

Clarification: the players must use the name that’s listed in admins.txt and have their name authorized. The authorization can be a valid tournament login or having their name protected with the auth.txt system. That way non-tournament players can also act as admins, and tournament players also when they’re not logged in the tournament (for example when the master server is down).

For authorized admins, the admin commands will be shown on the /help screen in addition to normal console commands. The /list command must be used to get the player ID of a player that can then be kicked, banned or muted via the respective commands. Silent muting with the /smute command means that the muted player will not know they’re muted; it’s pretty crude so use with care (or not at all). Banning made with the /ban command isn’t permanent: it will only last until the server is restarted. That’s because the IP address of the banned player can change and we don’t want to have banned someone else who gets their IP after them.

The /forcemap command is a bit complicated: it can be used to either change the map or just restart the round. To change the map, the player issuing the command must first vote for that map using /votemap. If they’ve voted for no map, only a restart is issued. Having pressed F4 or not has no effect.


Updated 2004-02-09 – Niko Ritari