WormNET (Worms Armageddon)
From Worms Knowledge Base
WormNET is the on-line multi-player system for Worms Armageddon.
A WA WormNET server is basically composed of a slightly (if at all) modified IRC server and an HTTP server with a few scripts. As of writing this page, Team17's WA WormNET server is running 2.8/hybrid-6.3.1(20020418_1) and Apache/2.0.54 + PHP/4.3.10-16 on Debian GNU/Linux.
So, the typical screen you see in a WormNET channel is actually made up of two logical parts:
- The first is the game list, which lists all games in the "waiting for players" state; WormNET games are managed by the PHP scripts.
- The second is the nickname list and the chatter area, which are managed through IRC.
These parts aren't really interconnected - thus, it's possible to create a game without connecting to the IRC server, and it is possible to connect to the IRC server without logging in through the web interface (this might change with time).
A typical connection sequence to WormNET is as following:
- Worms retrieves Login.asp, which contains a <CONNECT> directive - the IP/Port to the IRC server.
- Worms logs on the IRC server, and gets the list of channels.
- when the player joins a channel, Worms retrieves the channel scheme and game list for the channel (RequestChannelScheme.asp, GameList.asp).
The game list is periodically automatically updated.
- when a player hosts a game, Worms sends a "create game" request via Game.asp; when the actual game starts (no more people can join) or when the host exits before the game starts, a similar "close game" request is sent.
- when a player hosts or enters a game, he is disconnected from IRC.
- when a player exits a game, he must reconnect to WormNET from the beginning.
The WormNET ASP scripts (which are probably PHP scripts disguised as ASP, to preserve compatibility with the URLs hard-coded into the game executable) will only reply to HTTP clients that identify themselves with the T17Client/1.2 user-agent. You can quickly switch user agents with the User agent switcher Firefox extension.
At the moment of writing this article, the rank and secure login system has been removed from WormNET, because it has been abused several years ago. Currently, there are no online 3rd party servers that support these features either (but there are projects in development).
Each WormNET channel has its own settings. These settings can affect the presence of ranks, enforce a particular map or scheme, disable hosting games, and affect other settings for games hosted on the channel.
Here's the current list of channels and their scheme flags:
a-z is 0 to 25 unless otherwise stated.
|B||a-f||Number of additional teams (above the two required) allowed.|
|D||a-z||String of game/weapon options.|
|G||a-f||String of super-weapon options.|
|L||(text)||Name of the built-in level required.|
|N||(text)||Set the scheme name that will appear.|
|P||f||Enable rope knocking and blood.|
|T||a-f||Hosting: 0=allowed, 1=ranked, 2=ranked, 3=ranked, 4=ranked, 5=denied|
This is also used as the type value of the game when reporting the result.
|W||a-h||Worms per team, counting from 1. If adding a team with this many would exceed the worm limit, that team will be added with less worms.|