Resource:Mapmanager: Difference between revisions
m (Added TODO) |
(Updated) |
||
Line 1: | Line 1: | ||
The map manager lists maps and manages gamemode | The map manager lists gamemodes/maps and manages gamemode/map loading. It applies certain map settings affecting the game world and sets ASE game type and map name rule values as well. It includes a web listing which autoupdates and highglights the current mode/map combination. | ||
==Usage== | ==Usage== | ||
Line 14: | Line 14: | ||
'''name:''' A friendly name for your gamemode or map, to be displayed in the start messages or map listings instead of the filename. | '''name:''' A friendly name for your gamemode or map, to be displayed in the start messages or map listings instead of the filename. | ||
==Commands== | ==Commands== | ||
Line 66: | Line 62: | ||
<syntaxhighlight lang="lua">onGamemodeMapStop ( resource startedMap )</syntaxhighlight> | <syntaxhighlight lang="lua">onGamemodeMapStop ( resource startedMap )</syntaxhighlight> | ||
Fired before a GM map is stopped. | Fired before a GM map is stopped. | ||
==Supported map settings== | |||
The following settings from the [[settings system|registry]] are applied by the map manager when a map is started: | |||
<br>'''gamespeed''' [number]: The map's game speed. | |||
<br>'''gravity''' [number]: The map's gravity. | |||
<br>'''time''' [string of the form '''hh:mm''']: The map's time. | |||
<br>'''weather''' [number]: The map's weather ID. | |||
<br>'''waveheight''' [number]: The map's wave height. | |||
<br>'''minplayers''' [number]: The required minimum number of players to start the map. | |||
<br>'''maxplayers''' [number]: The allowed maximum number of players to start the map. | |||
==TODO== | ==TODO== | ||
*The manager still doesn't apply map settings, waiting for the [[Settings Proposal|settings registry]] system to be added. | *The manager still doesn't apply map settings, waiting for the [[Settings Proposal|settings registry]] system to be added. |
Revision as of 23:36, 24 September 2007
The map manager lists gamemodes/maps and manages gamemode/map loading. It applies certain map settings affecting the game world and sets ASE game type and map name rule values as well. It includes a web listing which autoupdates and highglights the current mode/map combination.
Usage
You have to tag the gamemode resource with the correct type in its info tag:
<info description="A gamemode" type="gamemode" />
Map resources also need the type="map" tag, plus a gamemodes tag listing the gamemode resources they're compatible with in a comma-separated list without spaces.
<info description="A gamemode map" type="map" gamemodes="ctv,koth" />
There can be only one gamemode and one gamemode map loaded at once.
Optional resource attributes
These attributes all go in the corresponding resource's info tag.
name: A friendly name for your gamemode or map, to be displayed in the start messages or map listings instead of the filename.
Commands
changemap newmap [newgamemode] (changes the gamemode map to a new one, optionally changing the gamemode as well)
changemode newgamemode [newmap] (changes to a new gamemode, optionally starting a map with it)
gamemode newgamemode [newmap] (same as previous one)
maps [gamemode] (lists all maps in the server, optionally all maps compatible with a gamemode)
gamemodes (lists all gamemodes)
Exported functions
bool changeGamemode ( resource newGamemode, [ resource mapToLoadWith ] )
Changes the gamemode to a new one, optionally specifying an initial map for it (will load without a map by default).
bool changeGamemodeMap ( resource newMap, [ resource gamemodeToChangeTo ] )
Changes the GM map to a new one, optionally specifying a gamemode to change to before loading it (will load with the current gamemode by default).
bool stopGamemode ( )
Stops the current gamemode and its map.
bool stopGamemodeMap ( )
Stop the current GM map.
resource getRunningGamemode ( )
Returns the currently running gamemode's resource pointer.
resource getRunningGamemodeMap ( )
Returns the currently running GM map's resource pointer.
table getMapsCompatibleWithGamemode ( [ resource theGamemode ] )
Returns a table of compatible map resource pointers. If the gamemode is left blank, it returns all maps which aren't compatible with any gamemode.
table getGamemodes ( )
Returns a table of all gamemode resource pointers.
table getMaps ( )
Returns a table of all map resource pointers.
bool isGamemode ( resource theGamemode )
Determines if a resource is a gamemode or not.
bool isMap ( resource theMap )
Determines if a resource is a map or not.
bool isMapCompatibleWithGamemode ( resource theMap, resource theGamemode )
Determines if a map is compatible with a gamemode or not.
Fired events
(For all these events, "source" is the resource's root element.)
onGamemodeStart ( resource startedGamemode )
Fired before a gamemode starts.
onGamemodeStop ( resource startedGamemode )
Fired before a gamemode is stopped.
onGamemodeMapStart ( resource startedMap )
Fired before a GM map starts.
onGamemodeMapStop ( resource startedMap )
Fired before a GM map is stopped.
Supported map settings
The following settings from the registry are applied by the map manager when a map is started:
gamespeed [number]: The map's game speed.
gravity [number]: The map's gravity.
time [string of the form hh:mm]: The map's time.
weather [number]: The map's weather ID.
waveheight [number]: The map's wave height.
minplayers [number]: The required minimum number of players to start the map.
maxplayers [number]: The allowed maximum number of players to start the map.
TODO
- The manager still doesn't apply map settings, waiting for the settings registry system to be added.