RU/Resource:Mapmanager

From Multi Theft Auto: Wiki
Revision as of 05:44, 18 November 2011 by OpenIDUser32 (talk | contribs)
Jump to navigation Jump to search
Warning.png

Статью необходимо перевести на русский язык. Если страница не будет переведена в разумные сроки, она будет удалена.

Менеджер карты - скрипт для MTASA. А точнее, это команды, функции и события для управления сервером. Например, когда в гонках надо загрузить различные объекты, вместо того, чтобы записывать все их в главном файле, они могут быть сохранены в отдельных файлах и затем загружены с функцией "changeGamemodeMap" в начале гонки.

Менеджер карты перечисляет моды/карты и управляет их загрузкой. Применяет определенные параметры и настройки карты, затрагивающие мир игры. Устанавливает тип игры ASE и название карты.

Туториал

Здесь мы продолжим создание основного мода, который мы создали в Введение в скриптинг. Мы создадим простую карту, которая содержит только точку респавна. И сделаем загрузку данных в главном скрипте, когда игрок хочет респавнится.

Прежде всего, мы создаем папку /Ваш_MTA_Server/mods/deathmatch/resources/ и называем ее "mymap". После в директории /mymap/ создаем текстовый файл и назоваем его "meta.xml", который требуется для каждого ресурса.

Вводим следующий текст в файл meta.xml:

<meta>
   <info type="map" gamemodes="myserver"/>
   <map src="mymap.map"/>
</meta>

Этот скрипт "связан" с главным скриптом отмеченным в "gamemodes = """. В строке "map" указывается имя .map файла, который содержит данные карты.

Теперь создадим еще один текстовый файл в директории /mymap/, назовем его "mymap.map" и введем данный текст:

<map>
   <spawnpoint id="spawnpoint1" posX="1959.5487060547" posY="-1714.4613037109" posZ="18" rot="63.350006103516" model="0"/>
</map>

Также элемент "spawnpoint" используется в функции getElementsByType; а элемент "id" в функции getElementByID.

Чтобы загрузить данные карты, скрипт нуждается в доступе к ресурсу карты непосредственно. Теперь давайте отредактируем script.lua файл в "myserver". Введи следующий текст:

function loadMap(startedMap)
	mapRoot = getResourceRootElement(startedMap)
end

addEventHandler("onGamemodeMapStart", getRootElement(), loadMap)

В основном "onGamemodeMapStart" дает нам возможность ввести ("startedMap"), раньше мы вводили ("mapRoot").

При вводе мы можем получить информацию о точках респавна. Функция joinHandler () в файле script.lua, вместо того, чтобы определить x, y и z, мы можем использовать данные карты:

function joinHandler()
	local spawn = getElementsByType("spawnpoint", mapRoot)
	local x,y,z,r
	for key, value in pairs(spawn) do
		x = getElementData(value, "posX")
		y = getElementData(value, "posY")
		z = getElementData(value, "posZ")
		r = getElementData(value, "rot")
	end
	spawnPlayer(source, x, y, z)
	fadeCamera(source, true)
end

Теперь ты можешь запустить сервер с данным модом, введя команду:

gamemode myserver mymap

Использование

Чтобы использовать менеджер карты, твои скрипты должны сначала быть прописаны или как мод или как карта.

Ты должен отметить gamemode правильным типом:

<info description="A gamemode" type="gamemode" />

Карта тоже нуждается в элементе type="map", также элемент gamemodes показывает моды с которыми он совместим без пробелов.

<info description="A gamemode map" type="map" gamemodes="ctv,koth" />

Сразу загружены могут быть только один мод или карта.

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)

stopmode (stops the current mode and mode map)

stopmap (stops the current mode map)

maps [gamemode] (lists all maps in the server, optionally all maps compatible with a gamemode)

gamemodes (lists all gamemodes)

Settings

*mapmanager.color [hex color string] (changes the mapmanager's output messages' color) (default: #E1AA5A)

*mapmanager.messages [boolean] (whether map/gm changes are enabled) (default: true)

*mapmanager.ASE [boolean] (whether the manager will set ASE gametype / mapname) (default: true)

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).

table getGamemodes ( )

Returns a table of all gamemode resource pointers.

table getGamemodesCompatibleWithMap ( resource theMap )

Returns a table of compatible gamemode resource pointers.

table getMaps ( )

Returns a table of all map resource pointers.

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.

resource getRunningGamemode ( )

Returns the currently running gamemode's resource pointer.

resource getRunningGamemodeMap ( )

Returns the currently running GM map's resource pointer.

bool isGamemode ( resource theGamemode )

Determines if a resource is a gamemode or not.

bool isGamemodeCompatibleWithMap ( resource theGamemode, resource theMap )

Determines if a gamemode is compatible with a map 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.

bool stopGamemode ( )

Stops the current gamemode and its map.

bool stopGamemodeMap ( )

Stop the current GM map. 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 stoppedGamemode )

Fired before a gamemode is stopped.

onGamemodeMapStart ( resource startedMap )

Fired before a GM map starts.

onGamemodeMapStop ( resource stoppedMap )

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.
locked_time [boolean]: Whether the set time will be frozen by the manager or not.
minplayers [number]: The required minimum number of players to start the map.
maxplayers [number]: The allowed maximum number of players to start the map.