RU/Resource:Race: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(updated to last version)
No edit summary
Line 1: Line 1:
{{RU/Resource page}}
{{RU/Resource page}}
__NOTOC__
__NOTOC__
The "race" gamemode organizes sprint or freeroam races for one or more players. It supports both maps from MTA:Race and maps in the MTA:SA DM map syntax that were created in the map editor.
Мод "race" организует спринтовые или свободные гонки для одного или более игроков. Он поддерживает карты из обеих MTA:Race и MTA:SA DM, которые были созданы в редакторе.


==Ingame==
==В самой игре==
Playing race is quite straightforward. If there are checkpoints, drive from checkpoint to checkpoint and be the first to reach the finish line within the time. If there are no checkpoints, just drive around and have fun.
Играть на моде race достаточно легко. Если имеются чекпоинты, езжайте от одного к следующему и попытайтесь приехать первым в указанное время. Если же их нет, просто катайтесь в свое удовольствие.


In races you may encounter three types of pickups which will have an effect on your vehicle:
В гонках вы можете встретить три типа пикапов, влияющих на ваше транспортное средство:
*'''Repair pickups:''' this pickup looks like a wrench. If you drive over it, your vehicle will be restored to full health.
*'''Пикапы починки:''' этот пикап выглядит, как гаечный ключ. Если вы его возьмете, здоровье вашего транспортного средства будет установлено на максимальное значение.
*'''Nitrous oxide pickups:''' a red NOS bottle. After you drive over one you can press the fire button (by default the left mouse button) to get a temporary speed boost.
*'''Пикапы оксида азота:''' красная бутыль NOS ("нитро"). После ее взятия, нажмите клавишу, отвечающую за выстрел (по умолчанию - левая кнопка мыши), чтобы временно ускорить разгон машины.
*'''Vehicle change pickups:''' these display the name of a vehicle above them. As soon as you drive over a pickup your vehicle will be changed.
*'''Пикапы смены транспортного средства:''' эти отображают над собой имя транспортного средства, заключенного внутри. Как только вы его берете, ваш транспорт меняется на указанный.


Lastly, if you get stuck during a race, you can enter the /kill command in the chatbox to kill yourself and respawn at the previous checkpoint.
И напоследок, если во время гонки вы застрянете, введите команду /kill в чате, чтобы умереть и переродиться на предыдущем чекпоинте.


==Converting MTA:Race maps==
==Конвертирование карт MTA:Race==
Use the [http://files.mtasa.com/apps/1.0/raceconv.zip batch converter] to convert all your MTA:Race maps into MTA:SA maps in one go.
Используйте [http://files.mtasa.com/apps/1.0/raceconv.zip массовый конвертер] для конвертирования всех карт MTA:Race в формат карт MTA:SA одним кликом.


==Map syntax==
==Синтаксис карт==
You can create race maps using the new MTA:SA [[Resource:editor|map editor]]. The map syntax is given here for reference.
Вы можете с легкостью создавать гоночные карты, используя новый синтаксис [[RU/Resource:Editor|редактора карт]] MTA:SA. Синтаксис карт указан ниже для справки.


===.map file===
===.map-файл===
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<map mod="deathmatch">
<map>
     <!-- One or more -->
     <!-- Один или более -->
     <spawnpoint posX="X" posY="Y" posZ="Z" rotation="Rotation in degrees" vehicle="Vehicle ID" id="spawnpointID" [ paintjob="paintjob ID" upgrades="comma-separated list of upgrades" ] />
     <spawnpoint posX="X" posY="Y" posZ="Z" rotation="Вращение в градусах" vehicle="ID транспортного средства" id="ID спавна" [ paintjob="ID винила" upgrades="разделенный запятыми список тюнинговых запчастей" ] />


     <!-- Zero or more -->
     <!-- Ноль или более -->  
     <checkpoint posX="X" posY="Y" posZ="Z" color="#FF0000" id="textual or numeric checkpoint ID" nextid="ID of checkpoint after this one" [ size="checkpoint size" vehicle="vehicle ID to change into" paintjob="paintjob ID" upgrades="comma-separated list of 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="разделенный запятыми список тюнинговых запчастей" ] />


     <!-- Zero or more -->
     <!-- Ноль или более -->
     <object posX="X" posY="Y" posZ="Z" rotX="in degrees" rotY="in degrees" rotZ="in degrees" model="model ID" id="objectID" />
     <object posX="X" posY="Y" posZ="Z" rotX="в градусах" rotY="в градусах" rotZ="в градусах" model="ID модели" id="ID объекта" />


     <!-- Zero or more -->
     <!-- Ноль или более -->
     <pickup posX="X" posY="Y" posZ="Z" type="repair|nitro|vehiclechange" id="pickupID" [ vehicle="vehicle ID" paintjob="paintjob ID" upgrades="comma-separated list of upgrades" ] />
     <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="Map name" author="Author name" description="Map description" version="Map version number"/>
   <info type="map" gamemodes="race" name="Имя карты" author="Автор карты" description="Описание карты" version="Номер версии карты"/>
   <race src="Map file.map"/>
   <race src="Map file.map"/>
   <settings>
   <settings>
       <setting name="#optionName" value="optionValue"/>
       <setting name="#имяОпции" value="значениеОпции"/>
       ...
       ...
   </settings>
   </settings>
</meta>
</meta>
</syntaxhighlight>
</syntaxhighlight>
The <setting>s correspond to options in MTA:Race syntax. For example, <time>4:0</time> in MTA:Race syntax would correspond to <setting name="#time" value="4:0"/> in DM syntax.
<setting> отвечает за опции синтаксиса MTA:Race. Например, <time>4:0</time> в синтаксисе MTA:Race будет соответствовать <setting name="#time" value="4:0"/> в синтаксисе DM.


==Addons==
==Аддоны==
A Race 'addon' is no different from any other script resource, except that is has addon="race" in the <info> section of it's meta.xml file. This is simply to allow Race to identify it and put it in the /config menu for you. Addons communicate with Race via events. The current list of Race events and what they do are here:
"Аддон" Race ничем не отличается от любого другого ресурса-скрипта, за исключением того, что имеет addon="race" в секции <info> своего meta.xml файла. Это сделано просто для того, чтобы Race мог его идентифицировать и положить его вам в меню /config. Аддоны сообщаются через Race события. Список действующих  Race событий и их назначений приведен далее.


==Events for version 0.8.3==
==События, доступные для версии 0.8.3==
'''Note:''' You may have to add the events in your script using addEvent() if you want to use them.
'''Заметка:''' Вам может понадобиться добавить данные события в свой скрипт через addEvent(), если вы планируете их использовать.
===Server===
===Сервер===


{| class="wikitable" border="0"
{| class="wikitable" border="0"
|-
|-
|width="200pt"|'''Name'''
|width="200pt"|'''Имя'''
|width="60pt"|'''Source'''
|width="60pt"|'''Source'''
|'''Parameters'''
|'''Параметры'''
|}
|}


Line 121: Line 121:
|}
|}


===Client===
===Клиент===


{| class="wikitable" border="0"
{| class="wikitable" border="0"
Line 171: Line 171:
|}
|}


==Events for version 0.8.3 in detail==
==События конкретно для версии 0.8.3==
'''Note:''' You may have to add the events in your script using addEvent() if you want to use them.
'''Заметка:''' Вам может понадобиться добавить данные события в свой скрипт через 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===
Triggered when a player reaches any checkpoint but the last one.
Срабатывает, когда игрок подбирает любой чекпоинт, кроме последнего.
====Parameters====
====Параметры====
<syntaxhighlight lang="lua">int checkpoint, int time</syntaxhighlight>
<syntaxhighlight lang="lua">int checkpoint, int time</syntaxhighlight>
*'''checkpoint:''' the number of the checkpoint the player went through. The first checkpoint has number 1.
*'''checkpoint:''' количество подобранных игроком чекпоинтов. Первый чекпоинт имеет номер 1.
*'''time:''' time since the race started, in milliseconds.
*'''time:''' время, прошедшее со старта гонки, в миллисекундах.


====Source====
====Source====
The source is the player that reached the checkpoint.
Source - игрок, подобравший чекпоинт.


===onPlayerFinish===
===onPlayerFinish===
Triggered when a player reaches the last checkpoint (i.e. has finished the race)
Срабатывает, когда игрок подбирает последний чекпоинт (т.е. завершает гонку)
====Parameters====
====Параметры====
<syntaxhighlight lang="lua">int rank, int time</syntaxhighlight>
<syntaxhighlight lang="lua">int rank, int time</syntaxhighlight>
*'''rank:''' the player's rank. 1 means he won the race, 2 that he came in second place, etc.
*'''rank:''' ранк игрока. 1 означает выигрыш гонки, 2 - что он пришел вторым, и т.д.
*'''time:''' time since the race started, in milliseconds.
*'''time:''' время, прошедшее со старта гонки, в миллисекундах.


====Source====
====Source====
The source is the player that finished the race.
Source - игрок, завершивший гонку.


===onPlayerPickUpRacePickup===
===onPlayerPickUpRacePickup===
====Parameters====
====Параметры====
<syntaxhighlight lang="lua">int/string pickupID, string pickupType, int vehicleModel</syntaxhighlight>
<syntaxhighlight lang="lua">int/string pickupID, string pickupType, int vehicleModel</syntaxhighlight>
*'''pickupID:''' the number of the pickup in case of MTA:Race syntax (starting at 1), or the "id" attribute of the pickup in case of DM syntax.
*'''pickupID:''' номер пикапа при синтаксисе MTA:Race (начиная с 1) или атрибут "id" пикапа в случае синтаксиса DM.
*'''pickupType:''' the pickup type. Can be "nitro", "repair" or "vehiclechange".
*'''pickupType:''' тип пикапа. Может быть "nitro", "repair" или "vehiclechange".
*'''vehicleModel:''' if the pickup is of type vehiclechange, this is the vehicle model that it sets.
*'''vehicleModel:''' если тип пикапа - vehiclechange, то это - модель нового транспортного средства, которую он устанавливает.


====Source====
====Source====
The source is the player that picked up the pickup.
Source - игрок, подобравший пикап.


==Element data==
==Данные элементов==
These element data are set on each player:
Следующая element data присваивается каждому из игроков:
*'''Race rank:''' the current position of the player in the race. 1 = first, 2 = second etc. Updated on a 1 second interval.
*'''race rank:''' позиция игрока в гонке на данный момент. 1 = первый, 2 = второй и т.д. Обновляется с интервалом в 1 секунду.
*'''race.checkpoint:''' the number of the checkpoint the player is ''heading for''. When the player spawns this number is 1, after he passed the first checkpoint it's 2, etc.
*'''race.checkpoint:''' номер чекпоинта, к которому ''направляется'' игрок. Когда игрок спавнится, значение этого параметра - 1, после подбора первого чекпоинта - 2 и т.д.
*'''race.finished:''' ''true'' if the player has finished, ''false'' if he's still racing.
*'''race.finished:''' ''true'', если игрок финишировал, ''false'', если он все еще в гонке.


This server only element data is set for the resource root element:
Эта сугубо серверная element data устанавливается root element (корневому элементу) ресурса:
*'''info:''' which contains a table with these sub-tables: '''mapInfo''', '''mapOptions''' and '''gameOptions'''.
*'''info:''' содержит таблицу со следующими подтаблицами: '''mapInfo''', '''mapOptions''' и '''gameOptions'''.


==Super Advanced Element data==
==Супер продвинутые данные элементов==
You can also set player element data to change the player collision status and render transparency:
Вы также можете задавать игроку element data для смены его статусов повреждаемости и прозрачности рендеринга:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
e.g. setElementData( thePlayer, "overrideCollide.uniqueblah", 0, false ) -- Collide 'off' for this player
e.g. setElementData( thePlayer, "overrideCollide.uniqueblah", 0, false ) -- Выключить повреждаемость игроку
     setElementData( thePlayer, "overrideCollide.uniqueblah", nil, false ) -- Collide 'default' for this player
     setElementData( thePlayer, "overrideCollide.uniqueblah", nil, false ) -- Включить игроку повреждаемость по умолчанию
     setElementData( thePlayer, "overrideAlpha.uniqueblah", 120, false ) -- Alpha '120 maximum' for this player
     setElementData( thePlayer, "overrideAlpha.uniqueblah", 120, false ) -- Alpha игрока на '120 максимум'
     setElementData( thePlayer, "overrideAlpha.uniqueblah", nil, false ) -- Alpha 'default' for this player
     setElementData( thePlayer, "overrideAlpha.uniqueblah", nil, false ) -- Alpha игрока на значение по умолчанию
</syntaxhighlight>
</syntaxhighlight>
Set 'uniqueblah' to whatever you like (up to 15 characters long)
Заменяйте 'uniqueblah' на что угодно (до 15 символов в длину)


==Exported Server functions==
==Экспортируемые серверные функции==


{| class="wikitable" border="0"
{| class="wikitable" border="0"
Line 255: Line 281:
|-
|-
|}
|}
[[en:Resource:Race]]

Revision as of 13:55, 17 May 2012

Мод "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