Jump to content

Workaround for 'lost maps'


Cygnus

Recommended Posts

As most of you have probably noticed by now, there's an annoying bug in MTA's remote admin protocol that prevents the whole map list from being sent to MTA:mA, resulting in so-called 'lost maps'. This is mainly because MTA uses the UDP protocol and packets are getting lost, but I found out that with a lot of maps (more than 500 or so), MTA just stops sending mapnames at one point, even on a local connection, so it wouldn't surprise me that this is a bug in the MTA server.

I got so annoyed by this that I decided to make a workaround, completely unrelated to the remote admin protocol, that doesn't use any map ID's, but is only based on using the mapnames themselves. This workaround turned out to be 2 scripts. The first one is a Ruby script that is made to run alongside the main MTA server. This script will start its own TCP server and will watch the server's logfile for new map started-messages. When it sees such a new line has been added to the logfile, it will notify all clients connected to the TCP server of the mapchange. I chose Ruby because it's a very simple yet powerful scripting language and because it's cross-platform.

The 2nd script is a mIRC script and acts as an add-on for MTA:mA. It will connect to the TCP server started by the Ruby script when MTA:mA has connected to the main MTA server. It will also fire a new mIRC event when a map has been started and allows an identifier to be used for getting the current mapname. You can use this event and/or identifier in other MTA:mA scripts to prevent getting any more lost (unknown) maps. More information about the new events and identifiers can be found in the supplied readme file.

I had to give this workaround a name, so I called it MTAServer+ (I know, not very original :roll: ). It's a very effective method for completely eliminating the lost maps-problem, especially on servers with a lot of maps. It's been running for almost 2 months now on littlewhitey's MTA server without any problems. Feel free to give it a try. Any comments/suggestions are welcome.

Download MTAServer+ 1.0

Greets Cygnus

Link to comment
  • 1 year later...

Hi. I tried this Ruby script, but it didn't help me in lostmaps detect. I saw sth like this:

[14:03] * Startrace: Success to start race "Unknown".

[14:03] Unknown Map Detected, Restarting Script And Map.

[14:03] * Disconnected: 0 User.

[14:03] * MTAServer+ Disconnected: User.

[14:03] * Connecting...

[14:03] * Connected.

[14:03] * Endrace: Race "" ended.

Even 406 maps are still avaliable. :(

Link to comment
Hi. I tried this Ruby script, but it didn't help me in lostmaps detect. I saw sth like this:

[14:03] * Startrace: Success to start race "Unknown".

[14:03] Unknown Map Detected, Restarting Script And Map.

[14:03] * Disconnected: 0 User.

[14:03] * MTAServer+ Disconnected: User.

[14:03] * Connecting...

[14:03] * Connected.

[14:03] * Endrace: Race "" ended.

Even 406 maps are still avaliable. :(

u can disable the restart of the script and just have the script start a new map that isnt unknown.

find:

prs.restart $1 

in: on *:SIGNAL:mta.startrace: {

and remove that line.

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...