RU/Resource:Race: Difference between revisions
(updated to last version) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{RU/Resource page}} | {{RU/Resource page}} | ||
__NOTOC__ | __NOTOC__ | ||
Мод "race" организует спринтовые или свободные гонки для одного или более игроков. Он поддерживает карты из обеих MTA:Race и MTA:SA DM, которые были созданы в редакторе. | |||
== | ==В самой игре== | ||
Играть на моде race достаточно легко. Если имеются чекпоинты, езжайте от одного к следующему и попытайтесь приехать первым в указанное время. Если же их нет, просто катайтесь в свое удовольствие. | |||
В гонках вы можете встретить три типа пикапов, влияющих на ваше транспортное средство: | |||
*''' | *'''Пикапы починки:''' этот пикап выглядит, как гаечный ключ. Если вы его возьмете, здоровье вашего транспортного средства будет установлено на максимальное значение. | ||
*''' | *'''Пикапы оксида азота:''' красная бутыль NOS ("нитро"). После ее взятия, нажмите клавишу, отвечающую за выстрел (по умолчанию - левая кнопка мыши), чтобы временно ускорить разгон машины. | ||
*''' | *'''Пикапы смены транспортного средства:''' эти отображают над собой имя транспортного средства, заключенного внутри. Как только вы его берете, ваш транспорт меняется на указанный. | ||
И напоследок, если во время гонки вы застрянете, введите команду /kill в чате, чтобы умереть и переродиться на предыдущем чекпоинте. | |||
== | ==Конвертирование карт MTA:Race== | ||
Используйте [http://files.mtasa.com/apps/1.0/raceconv.zip массовый конвертер] для конвертирования всех карт MTA:Race в формат карт MTA:SA одним кликом. | |||
== | ==Синтаксис карт== | ||
Вы можете с легкостью создавать гоночные карты, используя новый синтаксис [[RU/Resource:Editor|редактора карт]] MTA:SA. Синтаксис карт указан ниже для справки. | |||
===.map | ===.map-файл=== | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<map | <map> | ||
<!-- | <!-- Один или более --> | ||
<spawnpoint posX="X" posY="Y" posZ="Z" rotation=" | <spawnpoint posX="X" posY="Y" posZ="Z" rotation="Вращение в градусах" vehicle="ID транспортного средства" id="ID спавна" [ paintjob="ID винила" upgrades="разделенный запятыми список тюнинговых запчастей" ] /> | ||
<!-- | <!-- Ноль или более --> | ||
<checkpoint posX="X" posY="Y" posZ="Z" color="#FF0000" id=" | <checkpoint posX="X" posY="Y" posZ="Z" color="#FF0000" id="текстовый или числовой ID чекпоинта" nextid="ID следующего чекпоинта" [ size="размер чекпоинта" vehicle="ID транспортного средства для смены существующего" type="checkpoint/ring/cylinder/arrow/corona" paintjob="ID винила" upgrades="разделенный запятыми список тюнинговых запчастей" ] /> | ||
<!-- | <!-- Ноль или более --> | ||
<object posX="X" posY="Y" posZ="Z" rotX=" | <object posX="X" posY="Y" posZ="Z" rotX="в градусах" rotY="в градусах" rotZ="в градусах" model="ID модели" id="ID объекта" /> | ||
<!-- | <!-- Ноль или более --> | ||
<pickup posX="X" posY="Y" posZ="Z" type="repair|nitro|vehiclechange" id=" | <pickup posX="X" posY="Y" posZ="Z" type="repair|nitro|vehiclechange" id="ID пикапа" [ vehicle="ID транспортного средства" paintjob="ID винила" upgrades="разделенный запятыми список тюнинговых запчастей" ] /> | ||
</map> | </map> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 39: | Line 39: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<meta> | <meta> | ||
<info type="map" gamemodes="race" name=" | <info type="map" gamemodes="race" name="Имя карты" author="Автор карты" description="Описание карты" version="Номер версии карты"/> | ||
<race src="Map file.map"/> | <race src="Map file.map"/> | ||
<settings> | <settings> | ||
<setting name="# | <setting name="#имяОпции" value="значениеОпции"/> | ||
... | ... | ||
</settings> | </settings> | ||
</meta> | </meta> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<setting> отвечает за опции синтаксиса MTA:Race. Например, <time>4:0</time> в синтаксисе MTA:Race будет соответствовать <setting name="#time" value="4:0"/> в синтаксисе DM. | |||
== | ==Аддоны== | ||
"Аддон" Race ничем не отличается от любого другого ресурса-скрипта, за исключением того, что имеет addon="race" в секции <info> своего meta.xml файла. Это сделано просто для того, чтобы Race мог его идентифицировать и положить его вам в меню /config. Аддоны сообщаются через Race события. Список действующих Race событий и их назначений приведен далее. | |||
== | ==События, доступные для версии 0.8.3== | ||
''' | '''Заметка:''' Вам может понадобиться добавить данные события в свой скрипт через addEvent(), если вы планируете их использовать. | ||
=== | ===Сервер=== | ||
{| class="wikitable" border="0" | {| class="wikitable" border="0" | ||
|- | |- | ||
|width="200pt"|''' | |width="200pt"|'''Имя''' | ||
|width="60pt"|'''Source''' | |width="60pt"|'''Source''' | ||
|''' | |'''Параметры''' | ||
|} | |} | ||
Line 121: | Line 121: | ||
|} | |} | ||
=== | ===Клиент=== | ||
{| class="wikitable" border="0" | {| class="wikitable" border="0" | ||
Line 171: | Line 171: | ||
|} | |} | ||
== | ==События конкретно для версии 0.8.3== | ||
''' | '''Заметка:''' Вам может понадобиться добавить данные события в свой скрипт через addEvent(), если вы планируете их использовать. | ||
===onRaceStateChanging=== | |||
Срабатывает, когда ресурс race начинает что-то делать. | |||
===Параметры=== | |||
<syntaxhighlight lang="lua">string newState, string oldState</syntaxhighlight> | |||
*'''newState:''' старое значение | |||
*'''oldState:''' новое значение | |||
Возможные значения: | |||
* undefined | |||
* NoMap | |||
* LoadingMap | |||
* PreGridCountdown | |||
* GridCountdown | |||
* Running | |||
* MidMapVote | |||
* SomeoneWon | |||
* TimesUp | |||
* EveryoneFinished | |||
* PostFinish | |||
* NextMapSelect | |||
* NextMapVote | |||
* ResourceStopping | |||
===Source=== | |||
Root element (корневой элемент). | |||
===onPlayerReachCheckpoint=== | ===onPlayerReachCheckpoint=== | ||
Срабатывает, когда игрок подбирает любой чекпоинт, кроме последнего. | |||
==== | ====Параметры==== | ||
<syntaxhighlight lang="lua">int checkpoint, int time</syntaxhighlight> | <syntaxhighlight lang="lua">int checkpoint, int time</syntaxhighlight> | ||
*'''checkpoint:''' | *'''checkpoint:''' количество подобранных игроком чекпоинтов. Первый чекпоинт имеет номер 1. | ||
*'''time:''' | *'''time:''' время, прошедшее со старта гонки, в миллисекундах. | ||
====Source==== | ====Source==== | ||
Source - игрок, подобравший чекпоинт. | |||
===onPlayerFinish=== | ===onPlayerFinish=== | ||
Срабатывает, когда игрок подбирает последний чекпоинт (т.е. завершает гонку) | |||
==== | ====Параметры==== | ||
<syntaxhighlight lang="lua">int rank, int time</syntaxhighlight> | <syntaxhighlight lang="lua">int rank, int time</syntaxhighlight> | ||
*'''rank:''' | *'''rank:''' ранк игрока. 1 означает выигрыш гонки, 2 - что он пришел вторым, и т.д. | ||
*'''time:''' | *'''time:''' время, прошедшее со старта гонки, в миллисекундах. | ||
====Source==== | ====Source==== | ||
Source - игрок, завершивший гонку. | |||
===onPlayerPickUpRacePickup=== | ===onPlayerPickUpRacePickup=== | ||
==== | ====Параметры==== | ||
<syntaxhighlight lang="lua">int/string pickupID, string pickupType, int vehicleModel</syntaxhighlight> | <syntaxhighlight lang="lua">int/string pickupID, string pickupType, int vehicleModel</syntaxhighlight> | ||
*'''pickupID:''' | *'''pickupID:''' номер пикапа при синтаксисе MTA:Race (начиная с 1) или атрибут "id" пикапа в случае синтаксиса DM. | ||
*'''pickupType:''' | *'''pickupType:''' тип пикапа. Может быть "nitro", "repair" или "vehiclechange". | ||
*'''vehicleModel:''' | *'''vehicleModel:''' если тип пикапа - vehiclechange, то это - модель нового транспортного средства, которую он устанавливает. | ||
====Source==== | ====Source==== | ||
Source - игрок, подобравший пикап. | |||
== | ==Данные элементов== | ||
Следующая element data присваивается каждому из игроков: | |||
*''' | *'''race rank:''' позиция игрока в гонке на данный момент. 1 = первый, 2 = второй и т.д. Обновляется с интервалом в 1 секунду. | ||
*'''race.checkpoint:''' | *'''race.checkpoint:''' номер чекпоинта, к которому ''направляется'' игрок. Когда игрок спавнится, значение этого параметра - 1, после подбора первого чекпоинта - 2 и т.д. | ||
*'''race.finished:''' ''true'' | *'''race.finished:''' ''true'', если игрок финишировал, ''false'', если он все еще в гонке. | ||
Эта сугубо серверная element data устанавливается root element (корневому элементу) ресурса: | |||
*'''info:''' | *'''info:''' содержит таблицу со следующими подтаблицами: '''mapInfo''', '''mapOptions''' и '''gameOptions'''. | ||
== | ==Супер продвинутые данные элементов== | ||
Вы также можете задавать игроку element data для смены его статусов повреждаемости и прозрачности рендеринга: | |||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
e.g. setElementData( thePlayer, "overrideCollide.uniqueblah", 0, false ) -- | e.g. setElementData( thePlayer, "overrideCollide.uniqueblah", 0, false ) -- Выключить повреждаемость игроку | ||
setElementData( thePlayer, "overrideCollide.uniqueblah", nil, false ) -- | setElementData( thePlayer, "overrideCollide.uniqueblah", nil, false ) -- Включить игроку повреждаемость по умолчанию | ||
setElementData( thePlayer, "overrideAlpha.uniqueblah", 120, false ) -- Alpha '120 | setElementData( thePlayer, "overrideAlpha.uniqueblah", 120, false ) -- Alpha игрока на '120 максимум' | ||
setElementData( thePlayer, "overrideAlpha.uniqueblah", nil, false ) -- Alpha | setElementData( thePlayer, "overrideAlpha.uniqueblah", nil, false ) -- Alpha игрока на значение по умолчанию | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Заменяйте 'uniqueblah' на что угодно (до 15 символов в длину) | |||
== | ==Экспортируемые серверные функции== | ||
{| class="wikitable" border="0" | {| class="wikitable" border="0" | ||
Line 255: | Line 281: | ||
|- | |- | ||
|} | |} | ||
[[en:Resource:Race]] |
Latest revision as of 03:06, 1 April 2016
Мод "race" организует спринтовые или свободные гонки для одного или более игроков. Он поддерживает карты из обеих MTA:Race и MTA:SA DM, которые были созданы в редакторе.
В самой игре
Играть на моде race достаточно легко. Если имеются чекпоинты, езжайте от одного к следующему и попытайтесь приехать первым в указанное время. Если же их нет, просто катайтесь в свое удовольствие.
В гонках вы можете встретить три типа пикапов, влияющих на ваше транспортное средство:
- Пикапы починки: этот пикап выглядит, как гаечный ключ. Если вы его возьмете, здоровье вашего транспортного средства будет установлено на максимальное значение.
- Пикапы оксида азота: красная бутыль NOS ("нитро"). После ее взятия, нажмите клавишу, отвечающую за выстрел (по умолчанию - левая кнопка мыши), чтобы временно ускорить разгон машины.
- Пикапы смены транспортного средства: эти отображают над собой имя транспортного средства, заключенного внутри. Как только вы его берете, ваш транспорт меняется на указанный.
И напоследок, если во время гонки вы застрянете, введите команду /kill в чате, чтобы умереть и переродиться на предыдущем чекпоинте.
Конвертирование карт MTA:Race
Используйте массовый конвертер для конвертирования всех карт MTA:Race в формат карт MTA:SA одним кликом.
Синтаксис карт
Вы можете с легкостью создавать гоночные карты, используя новый синтаксис редактора карт MTA:SA. Синтаксис карт указан ниже для справки.
.map-файл
<map> <!-- Один или более --> <spawnpoint posX="X" posY="Y" posZ="Z" rotation="Вращение в градусах" vehicle="ID транспортного средства" id="ID спавна" [ paintjob="ID винила" upgrades="разделенный запятыми список тюнинговых запчастей" ] /> <!-- Ноль или более --> <checkpoint posX="X" posY="Y" posZ="Z" color="#FF0000" id="текстовый или числовой ID чекпоинта" nextid="ID следующего чекпоинта" [ size="размер чекпоинта" vehicle="ID транспортного средства для смены существующего" type="checkpoint/ring/cylinder/arrow/corona" paintjob="ID винила" upgrades="разделенный запятыми список тюнинговых запчастей" ] /> <!-- Ноль или более --> <object posX="X" posY="Y" posZ="Z" rotX="в градусах" rotY="в градусах" rotZ="в градусах" model="ID модели" id="ID объекта" /> <!-- Ноль или более --> <pickup posX="X" posY="Y" posZ="Z" type="repair|nitro|vehiclechange" id="ID пикапа" [ vehicle="ID транспортного средства" paintjob="ID винила" upgrades="разделенный запятыми список тюнинговых запчастей" ] /> </map>
meta.xml
<meta> <info type="map" gamemodes="race" name="Имя карты" author="Автор карты" description="Описание карты" version="Номер версии карты"/> <race src="Map file.map"/> <settings> <setting name="#имяОпции" value="значениеОпции"/> ... </settings> </meta>
<setting> отвечает за опции синтаксиса MTA:Race. Например, в синтаксисе MTA:Race будет соответствовать <setting name="#time" value="4:0"/> в синтаксисе DM.
Аддоны
"Аддон" Race ничем не отличается от любого другого ресурса-скрипта, за исключением того, что имеет addon="race" в секции <info> своего meta.xml файла. Это сделано просто для того, чтобы Race мог его идентифицировать и положить его вам в меню /config. Аддоны сообщаются через Race события. Список действующих Race событий и их назначений приведен далее.
События, доступные для версии 0.8.3
Заметка: Вам может понадобиться добавить данные события в свой скрипт через addEvent(), если вы планируете их использовать.
Сервер
Имя | Source | Параметры |
onPlayerReachCheckpoint | player | int checkpoint, int time_ |
onPlayerPickUpRacePickup | player | int/string pickupID, string pickupType, int vehicleModel |
onMapStarting | table mapInfo, table mapOptions, table gameOptions |
onPlayerFinish | player | int rank, int time |
onPostFinish |
onPollStarting | table poll |
onRaceStateChanging | string newStateName, string oldStateName |
onPlayerRaceWasted | player | vehicle playersVehicle |
Клиент
onClientMapStarting | table mapinfo |
onClientPlayerFinish | player |
onClientPlayerOutOfTime | player |
onClientMapStopping |
onClientScreenFadedOut |
onClientScreenFadedIn |
События конкретно для версии 0.8.3
Заметка: Вам может понадобиться добавить данные события в свой скрипт через addEvent(), если вы планируете их использовать.
onRaceStateChanging
Срабатывает, когда ресурс race начинает что-то делать.
Параметры
string newState, string oldState
- newState: старое значение
- oldState: новое значение
Возможные значения:
- undefined
- NoMap
- LoadingMap
- PreGridCountdown
- GridCountdown
- Running
- MidMapVote
- SomeoneWon
- TimesUp
- EveryoneFinished
- PostFinish
- NextMapSelect
- NextMapVote
- ResourceStopping
Source
Root element (корневой элемент).
onPlayerReachCheckpoint
Срабатывает, когда игрок подбирает любой чекпоинт, кроме последнего.
Параметры
int checkpoint, int time
- checkpoint: количество подобранных игроком чекпоинтов. Первый чекпоинт имеет номер 1.
- time: время, прошедшее со старта гонки, в миллисекундах.
Source
Source - игрок, подобравший чекпоинт.
onPlayerFinish
Срабатывает, когда игрок подбирает последний чекпоинт (т.е. завершает гонку)
Параметры
int rank, int time
- rank: ранк игрока. 1 означает выигрыш гонки, 2 - что он пришел вторым, и т.д.
- time: время, прошедшее со старта гонки, в миллисекундах.
Source
Source - игрок, завершивший гонку.
onPlayerPickUpRacePickup
Параметры
int/string pickupID, string pickupType, int vehicleModel
- pickupID: номер пикапа при синтаксисе MTA:Race (начиная с 1) или атрибут "id" пикапа в случае синтаксиса DM.
- pickupType: тип пикапа. Может быть "nitro", "repair" или "vehiclechange".
- vehicleModel: если тип пикапа - vehiclechange, то это - модель нового транспортного средства, которую он устанавливает.
Source
Source - игрок, подобравший пикап.
Данные элементов
Следующая element data присваивается каждому из игроков:
- race rank: позиция игрока в гонке на данный момент. 1 = первый, 2 = второй и т.д. Обновляется с интервалом в 1 секунду.
- race.checkpoint: номер чекпоинта, к которому направляется игрок. Когда игрок спавнится, значение этого параметра - 1, после подбора первого чекпоинта - 2 и т.д.
- race.finished: true, если игрок финишировал, false, если он все еще в гонке.
Эта сугубо серверная element data устанавливается root element (корневому элементу) ресурса:
- info: содержит таблицу со следующими подтаблицами: mapInfo, mapOptions и gameOptions.
Супер продвинутые данные элементов
Вы также можете задавать игроку element data для смены его статусов повреждаемости и прозрачности рендеринга:
e.g. setElementData( thePlayer, "overrideCollide.uniqueblah", 0, false ) -- Выключить повреждаемость игроку setElementData( thePlayer, "overrideCollide.uniqueblah", nil, false ) -- Включить игроку повреждаемость по умолчанию setElementData( thePlayer, "overrideAlpha.uniqueblah", 120, false ) -- Alpha игрока на '120 максимум' setElementData( thePlayer, "overrideAlpha.uniqueblah", nil, false ) -- Alpha игрока на значение по умолчанию
Заменяйте 'uniqueblah' на что угодно (до 15 символов в длину)
Экспортируемые серверные функции
int |
getTimePassed |
int |
getPlayerRank | player thePlayer |
boolean |
isPlayerFinished | player thePlayer |
vehicle |
getPlayerVehicle | player thePlayer |