30 посетителей на сайте. Из них:
Пользователи6
Роботы24
Список пользователей
Максим Дип Сейчас на сайте
Saml Kroll Сейчас на сайте
baxton baxtonowski Сейчас на сайте
senya holod Сейчас на сайте
Никита жосан Сейчас на сайте
Диск Лайк Сейчас на сайте
Георгий Келехсаев Был(a) в сети 6 минут назад
Jack Был(a) в сети 8 минут назад
World Tanks Был(a) в сети 8 минут назад
Danger Karleon Был(a) в сети 10 минут назад
Константин Яковлев Был(a) в сети 11 минут назад
Kekich Был(a) в сети 1 час назад
Для Опр Rockfeller's Team Был(a) в сети 1 час назад
Хамзат Был(a) в сети 1 час назад
Ab Antonian Был(a) в сети 1 час назад
Арсений Был(a) в сети 2 часа назад
Амин Агарзаев Был(a) в сети 2 часа назад
ivan 2123132 Был(a) в сети 2 часа назад
Перчик Перец Был(a) в сети 2 часа назад
Ислам Дзарахов Был(a) в сети 2 часа назад
Юрий Фомичёв Был(a) в сети 2 часа назад
denis gold Был(a) в сети 2 часа назад
Бибр Квасин Был(a) в сети 2 часа назад
Павел Евдокимов Был(a) в сети 3 часа назад
Batuhan Sanlı Был(a) в сети 3 часа назад
ПРОСТО ДЕНЧИКИ Был(a) в сети 3 часа назад
Jeoffrey Bay Был(a) в сети 4 часа назад
Es! 4uDo Был(a) в сети 4 часа назад
Makeshov Был(a) в сети 5 часов назад
Женя Евгений Был(a) в сети 5 часов назад
Samvel Poghosyan Был(a) в сети 6 часов назад
Flesex Был(a) в сети 6 часов назад
0987654321 Был(a) в сети 6 часов назад
Илья Был(a) в сети 7 часов назад
Был(a) в сети 7 часов назад
Kazantip Был(a) в сети 8 часов назад
хуй олегович Был(a) в сети 8 часов назад
Clopo Alex Был(a) в сети 9 часов назад
Был(a) в сети 9 часов назад
1 1 Был(a) в сети 9 часов назад
Даниил Девелоп Был(a) в сети 10 часов назад
AGGRESS1VEX Был(a) в сети 10 часов назад
amir a Был(a) в сети 10 часов назад
evgen5532 Был(a) в сети 11 часов назад
R.S Tutorsツ Был(a) в сети 11 часов назад
weresend Был(a) в сети 11 часов назад
x1ntezz Был(a) в сети 11 часов назад
GERGEL Был(a) в сети 12 часов назад
Глеб Иосиф Был(a) в сети 12 часов назад
FRE EZ Был(a) в сети 12 часов назад
Кирилл Феникс Был(a) в сети 12 часов назад
MixFix Был(a) в сети 12 часов назад
Даниил Гукасьян Был(a) в сети 12 часов назад
STAKANcHik FF Был(a) в сети 12 часов назад
Daniele Был(a) в сети 13 часов назад
DOPXSET Был(a) в сети 13 часов назад
James_ LP Был(a) в сети 13 часов назад
Список ботов
rambler (23)
aport (1)

Следите за нами!

Mapmanager 2

Описание

Map manager (менеджер карт) - ресурс, включенный в стандартный комплект поставки MTA DM сервера. Он предлагает команды, функции и события для модов, чтобы динамично распоряжаться их картами. Например, когда race-серверу нужно для каждой гонки подгружать новые треки, вместо того, чтобы хранить их все в одном ресурсе в качестве основного скрипта, они могут храниться в отдельных ресурсах и быть загруженными с помощью обычной функции "changeGamemodeMap" при старте новой гонки.

А именно, map manager хранит список всех модов/карт и управляет их загрузкой. То есть распространяется и на настройки текущей карты, затрагивает игровой мир и устанавливает тип игры и имя карты в ASE. Это включает в себя и веб-лист, который обновляется и пишет текущую комбинацию мода/карты.

Простой туториал

В этой секции мы продолжим создавать простой мод, который начали во вступлении ко скриптингу. Мы добавим простой ресурс-карту, который будет содержать лишь спавны для игроков, и научимся подгружать данные в главный скрипт, когда игроку понадобится спавниться.

Для начала, мы создадим папку в /путь-к-вашему-серверу/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").

Имея контроль над ресурсом, мы можем добыть информацию о spawnpoint'ах (респавнах). Взгляните на функцию 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

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

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

Вам придется пометить ресурс-мод соответствующим type в его info-теге:

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

Ресурс-карту нужно пометить type="map", а вдобавок еще и gamemodes, где требуется перечислить все совместимые с ней ресурсы-моды через запятую, но без пробелов.

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

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

Опциональные атрибуты ресурсов

Все эти атрибуты включаются в тег info соответствующего ресурса.

name: "Дружелюбное" имя для вашего мода или карты, которое будет отображаться при их старте или в списках вместо имен файлов.

Команды

changemap newmap [newgamemode] (меняет карту мода на новую, а опционально - и сам мод)

changemode newgamemode [newmap] (меняет мод на новый, опционально стартуя карту вместе с ним)

gamemode newgamemode [newmap] (аналогично предыдущему)

stopmode (останавливает текущие мод и карту)

stopmap (останавливает текущую карту)

maps [gamemode] (выдает список всех карт на сервере, опционально - только совместимых с указанным модом)

gamemodes (выдает список всех модов)

Настройки

*mapmanager.color [hex color string] (меняет цвет сообщений, выводимых mapmanager'ом) (по умолчанию: #E1AA5A)

*mapmanager.messages [boolean] (включена ли смена карт/модов) (по умолчанию: true)

*mapmanager.ASE [boolean] (будет ли менеджер устанавливать в ASE тип игры / имя карты) (по умолчанию: true)

Экспортированные функции

bool changeGamemode ( resource newGamemode, [ resource mapToLoadWith ] )

Меняет мод на новый, опционально указав начальную карту для него (по умолчанию загрузится без карты).

bool changeGamemodeMap ( resource newMap, [ resource gamemodeToChangeTo ] )

Меняет карта мода на новую, опционально указав мод, на который придется переключиться для ее запуска (по умолчанию загрузится на текущем моде).

table getGamemodes ( )

Выдаст таблицу всех указателей ресурсов-модов.

table getGamemodesCompatibleWithMap ( resource theMap )

Выдаст таблицу указателей совместимых ресурсов-модов.

table getMaps ( )

Выдаст таблицу указателей всех ресурсов-карт.

table getMapsCompatibleWithGamemode ( [ resource theGamemode ] )

Выдаст таблицу указателей совместимых ресурсов-карт. Если gamemode не указан, вернет все карты, которые не совместимы ни с одним из модов.

resource getRunningGamemode ( )

Выдаст указатель работающего в данный момент ресурса-мода.

resource getRunningGamemodeMap ( )

Выдаст указатель ресурса-карты работающего в данный момент мода.

bool isGamemode ( resource theGamemode )

Определяет является ли ресурс модом.

bool isGamemodeCompatibleWithMap ( resource theGamemode, resource theMap )

Определяет совместим ли мод с картой или нет.

bool isMap ( resource theMap )

Определяет является ли ресурс картой или нет.

bool isMapCompatibleWithGamemode ( resource theMap, resource theGamemode )

Определяет совместима ли карта с модом или нет.

bool stopGamemode ( )

Останавливает текущие мод и карту.

bool stopGamemodeMap ( )

Stop the current GM map. Останавливает текущую карту.

Срабатывающие события

(Для всех этих событий, "source" - root element (корневой элемент) ресурса.)

onGamemodeStart ( resource startedGamemode )

Срабатывает при старте мода.

onGamemodeStop ( resource stoppedGamemode )

Срабатывает перед остановкой мода.

onGamemodeMapStart ( resource startedMap )

Срабатывает перед стартом карты на моде.

onGamemodeMapStop ( resource stoppedMap )

Срабатывает перед остановкой карты на моде.

Поддерживаемые настройки карт

Следующие настройки из регистра применяются map manager'ом при старте карты:

gamespeed [number]: Скорость игры на данной карте.

gravity [number]: Гравитация на данной карте.

time [string of the form hh:mm]: Время на данной карте.

weather [number]: ID погоды на данной карте.

waveheight [number]: Высота волн на данной карте.

locked_time [boolean]: Остановит ли менеджер время на карте или нет.

minplayers [number]: Необходимый минимум игроков для старта карты.

maxplayers [number]: Допустимый максимум игроков на карте.





Автор публикации:

WiseBear WiseBear

Скачать:

Скачать

Дата:
Автор ресурса:

Я

Mapmanager
Mapmanager
12.02.2021, Уроки Скриптинг Мта
Введение в скриптинг
Введение в скриптинг
12.02.2021, Статьи
Введение в скриптинг 2
Введение в скриптинг 2
24.12.2020, Клиенты MTA
Обучение LUA
Обучение LUA
24.12.2020, Статьи

Нет комментариев.Оставишь комментарий?