PL/Resource:Editor/EDF: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (Reverted edits by Marcin778 (talk) to last revision by Tararysz12)
m (FileEX moved page PL/EDF to PL/Resource:Editor/EDF)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Resource page}}
{{PL/Resource page}}
__NOTOC__
__NOTOC__
EDF oznacza 'Edytor Definiowania Pliku' EDF są pliki XML z rozszerzeniem .edf opisujące elementy niestandardowe używane przez zasoby, typy elementów które nie mają znaczenia dla samego MTA. Przykładami są: & lt; & gt;, spawnpoint & lt; & gt;, flag & lt; checkpoint & gt; itd. One także są wykorzystywane do definiowania ustawień, które są używane przez gamemody, które są umieszczane pod  & lt; Settings & gt; tag  w obrębie zasobu 'meta.xml'
EDF oznacza ''Editor Definition File'' - Są to pliki XML z rozszerzeniem .edf, które definiują niestandardowe elementy używane przez zasób. Są to elementy, które nie mają znaczenia dla samego MTA. Przykładami są np. ''<spawnpoint>, <flag>, <checkpoint>'' itd. Takie niestandardowe elementy są także używane do definiowania ustawień używanych przez tryby gry i umieszcza się je w tagu ''<settings>'' w pliku meta.xml danego zasobu.
 


==Wprowadzenie==
==Wprowadzenie==
Niektóre zasoby używają niestandardowych elementów mapy. Przechwytywane flagi, gamemody na przykład będzie trzeba prawdopodobnie użyć  & lt; & gt flags; Elementy które zawierają pozycje flag i zespołów. Gdy mapa jest załadowana gamemode szuka & lt; & gt flags; elementy i instaluje flagi odpowiednio - na przykład poprzez utworzenie obiektu z flagą i kształt kolizji.
Niektóre zasoby używają niestandardowych elementów mapy. Przykładowo tryb gry "Capture the flag" używać będzie zapewne elementu ''<flag>'', który będzie zawierał pozycję flagi i przypisaną do niej drużynę. Gdy mapa zostanie załadowana to tryb gry szuka elementów ''<flag>'' i odpowiednio je rozmieszcza np. tworząc obiekt flagi w otrzymanej pozycji.


The problem with these custom elements is that, unlike built-in MTA elements, the map editor has no idea of their meaning. How should a &lt;flag&gt; element be visually represented? What properties does it have? Without telling the editor this information, you could not use it to create these custom elements and would instead have to resort to manually editing the .map file with a text editor. Fortunately this isn't necessary: any resource can contain an editor definition file that describes the custom map elements used by that resource.
Jest jednak pewien problem z niestandardowymi elementami, który polega na tym, że edytor map nie wiele o nich wie. Nie ma on informacji w jaki sposób element ''<flag>'' ma być zaprezentowany wizualnie czy jakie ma właściwości ten element. Jeśli nie dostarczymy edytorowi map tych informacji to nie będzie można użyć tych niestandardowych elementów, a zamiast tego będzie trzeba ręcznie edytować plik .map w jakimś edytorze tekstowym.
Na szczęście jednak nie jest to konieczne, ponieważ każdy zasób może zawierać plik .edf z informacjami o niestandardowych elementach w nim użytych.


==Using definition files in the editor==
==Używanie plików EDF w edytorze==
As described in the [[Resource:Editor|main editor manual]], to be able to create the custom elements of a resource in your map you need to add it in the ''Definitions'' window. Click the ''Definitions'' button in the main menu and double click the resource in the left list. Then close the window and roll the mousewheel in the element panel until the resource comes up. At that point you can create and manipulate custom elements of that resource like any other element.
Jak opisano w [[PL/Resource:Editor|Instrukcji edytora map]], aby móc tworzyć niestandardowe elementy zasobu na mapie, należy dodać je w oknie ''Definitions''.
Kliknij przycisk ''Definitions'' w menu głównym edytora, a następnie kliknij dwukrotnie na zasób znajdujący się na liście po lewej stronie. Po tym zamknij okno i przesuwaj kółkiem myszki w panelu elementów aż zobaczysz wybrany zasób. W tym momencie możesz już tworzyć niestandardowe elementy zasobu i manipulować nimi tak samo jak wszystkimi innymi elementami w MTA.


==Writing EDF files==
==Tworzenie plików EDF==
EDF files are simply XML files with an .edf extension. We'll start with an example: the EDF of the Capture the Orb gamemode.
EDF są zwykłymi plikami XML, tyle tylko, że mają rozszerzenie .edf. Zaczniemy od przykładu, w którym stworzymy plik EDF dla trybu gry "Capture the Orb".


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<def name="Capture the Orb">
<def name="Capture the Orb">
     <element name="orb" friendlyname="Orb spawnpoint" instructions="Place your orb in a position that can be collected.">
     <element name="orb" friendlyname="Orb spawnpoint" instructions="Umieść swoją kulę w miejscu, gdzie można ją zebrać.">
         <data name="position" type="coord3d" default="0,0,0" />
         <data name="position" type="coord3d" default="0,0,0" />
         <marker size="0.5" type="corona" color="#ffff00ff" />
         <marker size="0.5" type="corona" color="#ffff00ff" />
     </element>
     </element>
     <element name="objective" friendlyname="Objective point" instructions="Place your objective point in a position that can be reached.">
     <element name="objective" friendlyname="Objective point" instructions="Umieść punkt docelowy w miejscu, gdzie można dotrzeć.">
         <data name="position" type="coord3d" default="0,0,0" />
         <data name="position" type="coord3d" default="0,0,0" />
         <marker size="3" type="cylinder" color="#9370dbaa" />
         <marker size="3" type="cylinder" color="#9370dbaa" />
Line 33: Line 36:
</syntaxhighlight>
</syntaxhighlight>


As you can see, the syntax is fairly straightforward. The root element, &lt;def&gt;, contains a number of &lt;element&gt;s. Each of these &lt;element&gt;s describes a custom element and specifies its name, visual representation and available properties.
Jak widzisz, składnia jest banalnie prosta. Głównym źródłem jest element ''<def>'', który zawiera wszystkie niestandardowe elementy. Każdy z niestandardowych elementów jest tworzony przez tag ''<element>'', który zawiera nazwę elementu, jego właściwości oraz oraz sposób wizualnej reprezentacji.


===Visual representation===
===Wizualna reprezentacja===


Any child node of an &lt;element&gt; that is not a &lt;data&gt; node is part of the visual representation. There can be one or more objects, markers, pickups etc. For each representation element you can optionally specify a position (posX, posY, posZ) and rotation (rotX, rotY, rotZ): these are ''relative'' to the position and rotation of the represented custom element. Using the above Capture the Orb example, if you were to create a spawnpoint at (30, 14, 3), the editor would display an object of model 3092 at (30, 14, 4) to represent it, because the object's posZ of 1 is added to the spawnpoint's z position of 3.
Każdy wpis/węzeł wewnątrz tagu ''<element>'' to tzw. dziecko/potomek tego elementu i takim słownictwem będziemy się dalej posługiwać.


===Properties===
Każdy potomek elementu, który nie jest węzłem ''<data>'' odpowiada za reprezentację wizualną danego elementu. Może być jeden lub więcej obiektów, markerów, pickupów itp. Dla każdego takiego potomka można opcjonalne ustawić jego pozycję (posX, posY, posZ) i rotację (rotX, rotY, rotZ). Pozycja i rotacja elementu będzie zależna od pozycji i rotacji rodzica, czyli reprezentacji niestandardowego elementu (tag ''<element>'').
Korzystając z powyższego przykładu; jeśli chciałbyś stworzyć np. spawnpoint w pozycji (30, 14, 3) to edytor wyświetliłby obiekt o modelu 3092 w pozycji (30, 14, 4). Dzieje się tak, ponieważ pozycja (posZ) obiektu z tagu ''<object>'' zostanie dodana do pozycji (posZ) samego rodzica z tagu ''<element>'', czyli spawnpointa. Stąd wychodzi 3 + 1 = 4.


Properties of a custom element are described by &lt;data&gt; nodes. Some property names have a special meaning, like ''position'' and ''rotation'': these can be changed by moving and rotating the element in the editor. The other properties can be changed in the Properties window.
===Właściwości===
Właściwości niestandardowych elementów są opisywane poprzez węzły z tagiem ''<data>''. Niektóre nazwy właściwości mają specjalne znaczenie np. ''position'' i ''rotation''. Ich wartość może być zmieniana przez poruszanie lub obracanie elementu w edytorze map. Pozostałe właściwości mogą być zmienione w oknie właściwości.


===Property-dependent visual representation===
===Reprezentacja wizualna zależna od właściwości===


It is possible to make the representation of a custom element depend on one or more of the element's properties. Take as example a &lt;checkpoint&gt; element of a race gamemode that contains a &lt;marker&gt; for representation: the checkpoint has several attributes like color and size that should be reflected in the marker. To accomplish this, specify something of the form ''!propertyname!'' in one or more of the representing element's attributes. For example:
Możliwe jest uzależnienie wizualnej reprezentacji elementu od jednej lub więcej właściwości. Weźmy za przykład taki ''<checkpoint>'', który jest elementem trybu gry ''race''. Element ten zawiera ''<marker>'' dla wizualnej reprezentacji, ale oprócz tego posiada kilka atrybutów takich jak kolor czy rozmiar, które będą przypisane do markera. Aby uzależnić wizualną reprezentację od właściwości elementu (w tym przypadku np. od właściwości ''color'' zależeć będzie wizualna reprezentacja elementu typu checkpoint, którego ową reprezentacją jest marker), należy zastosować zapis w postaci ''!nazwawłaściwości'' w jednym lub więcej atrybutach elementu.  
Przykład:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 62: Line 68:
</syntaxhighlight>
</syntaxhighlight>


Now whenever the "type", "size" or "color" property of a checkpoint is changed, the new value will be copied to its marker, and the marker's visual appearance changes accordingly.
Teraz jeśli zmienimy właściwość "type", "size" lub "color" checkpointa to zostanie ona przeniesiona na marker, ponieważ to on jest wizualną reprezentacją tego elementu.


===Integrating in a resource===
===Integracja EDF w zasobie===


Once you've written your EDF, save it as an .edf file in your resource's folder and add an "edf:definition" attribute to your meta.xml's &lt;info&gt; tag, like so:
Gdy już stworzyłeś plik EDF, zapisz go jako plik z rozszerzeniem .edf w folderze ze swoim zasobem. Musisz dodać do pliku meta.xml wpis z atrybutem ''edf:definition''. Tak jak w przykładzie poniżej


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 75: Line 81:
</syntaxhighlight>
</syntaxhighlight>


==EDF reference==
==Odwołania do EDF==


===Built-in elements===
===Wbudowane elementy MTA===
These are the elements you can use for representing your custom elements, along with their properties.
Poniżej znajdziesz listę elementów, które możesz użyć dla wizualnej reprezentacji swoich niestandardowych elementów wraz z ich właściwościami.


{| cellspacing="1"
{| cellspacing="1"
! style="background-color: #EEE" colspan="2" | &lt;blip&gt;
! style="background-color: #EEE" colspan="2" | &lt;blip&gt;
|-
|-
! style="background-color: #EEE"|Property
! style="background-color: #EEE"|Właściwość
! style="background-color: #EEE"|Type
! style="background-color: #EEE"|Typ
|-
|-
| style="background-color: #EEE"|position
| style="background-color: #EEE"|position
Line 106: Line 112:
! style="background-color: #EEE" colspan="2" | &lt;marker&gt;
! style="background-color: #EEE" colspan="2" | &lt;marker&gt;
|-
|-
! style="background-color: #EEE"|Property
! style="background-color: #EEE"|Właściwość
! style="background-color: #EEE"|Type
! style="background-color: #EEE"|Typ
|-
|-
| style="background-color: #EEE"|position
| style="background-color: #EEE"|position
Line 132: Line 138:
! style="background-color: #EEE" colspan="2" | &lt;object&gt;
! style="background-color: #EEE" colspan="2" | &lt;object&gt;
|-
|-
! style="background-color: #EEE"|Property
! style="background-color: #EEE"|Właściwość
! style="background-color: #EEE"|Type
! style="background-color: #EEE"|Typ
|-
|-
| style="background-color: #EEE"|model
| style="background-color: #EEE"|model
Line 155: Line 161:
! style="background-color: #EEE" colspan="2" | &lt;ped&gt;
! style="background-color: #EEE" colspan="2" | &lt;ped&gt;
|-
|-
! style="background-color: #EEE"|Property
! style="background-color: #EEE"|Właściwość
! style="background-color: #EEE"|Type
! style="background-color: #EEE"|Typ
|-
|-
| style="background-color: #EEE"|position
| style="background-color: #EEE"|position
Line 178: Line 184:
! style="background-color: #EEE" colspan="2" | &lt;pickup&gt;
! style="background-color: #EEE" colspan="2" | &lt;pickup&gt;
|-
|-
! style="background-color: #EEE"|Property
! style="background-color: #EEE"|Właściwość
! style="background-color: #EEE"|Type
! style="background-color: #EEE"|Typ
|-
|-
| style="background-color: #EEE"|position
| style="background-color: #EEE"|position
Line 204: Line 210:
! style="background-color: #EEE" colspan="2" | &lt;vehicle&gt;
! style="background-color: #EEE" colspan="2" | &lt;vehicle&gt;
|-
|-
! style="background-color: #EEE"|Property
! style="background-color: #EEE"|Właściwość
! style="background-color: #EEE"|Type
! style="background-color: #EEE"|Typ
|-
|-
| style="background-color: #EEE"|model
| style="background-color: #EEE"|model
Line 236: Line 242:
! style="background-color: #EEE" colspan="2" | &lt;radararea&gt;
! style="background-color: #EEE" colspan="2" | &lt;radararea&gt;
|-
|-
! style="background-color: #EEE"|Property
! style="background-color: #EEE"|Właściwość
! style="background-color: #EEE"|Type
! style="background-color: #EEE"|Typ
|-
|-
| style="background-color: #EEE"|posX
| style="background-color: #EEE"|posX
Line 258: Line 264:
|}
|}


===Built-in property names===
===Nazwy wbudowanych właściwości===
Properties with these names have a special meaning to the editor and can be modified by other means than the Properties window.
Właściwości o tych nazwach mają specjalne znaczenie dla edytora map. Oznacza to, że mogą one być modyfikowane w inny sposób niż okno właściwości.
{| cellspacing="1"
{| cellspacing="1"
! style="background-color: #EEE"|Name
! style="background-color: #EEE"|Nazwa
! style="background-color: #EEE"|Type
! style="background-color: #EEE"|Typ
|-
|-
! style="background-color: #EEE"|position
! style="background-color: #EEE"|position
Line 271: Line 277:
|}
|}


===Property types===
===Typy właściwości===
These are the types you can choose from for the properties (&lt;data&gt;) of your custom elements.
Oto typy, które możesz wybrać dla właściwości węzła ''<data>'' niestandardowych elementów.


====Primitives====
====Prymitywy====
{| cellspacing="1"
{| cellspacing="1"
! style="background-color: #EEE"|Name
! style="background-color: #EEE"|Nazwa
! style="background-color: #EEE"|Description
! style="background-color: #EEE"|Opis
! style="background-color: #EEE"|Value
! style="background-color: #EEE"|Wartość
|-
|-
! style="background-color: #EEE"|boolean
! style="background-color: #EEE"|boolean
| style="background-color: #EEE"|Simple boolean value.
| style="background-color: #EEE"|Przykładowa wartość typu boolean.
| style="background-color: #EEE"|"true" or "false"
| style="background-color: #EEE"|"true" lub "false"
|-
|-
! style="background-color: #EEE"|natural
! style="background-color: #EEE"|natural
| style="background-color: #EEE"|Natural number (whole and non-negative).
| style="background-color: #EEE"|Liczby naturalne (całkowite i nieujemne).
| style="background-color: #EEE"|&nbsp;
| style="background-color: #EEE"|
|-
|-
! style="background-color: #EEE"|integer
! style="background-color: #EEE"|integer
| style="background-color: #EEE"|Whole number.
| style="background-color: #EEE"|Liczba całkowita.
| style="background-color: #EEE"|&nbsp;
| style="background-color: #EEE"|
|-
|-
! style="background-color: #EEE"|number
! style="background-color: #EEE"|number
| style="background-color: #EEE"|Rational number.
| style="background-color: #EEE"|Liczba wymierna.
| style="background-color: #EEE"|&nbsp;
| style="background-color: #EEE"|
|-
|-
! style="background-color: #EEE"|string
! style="background-color: #EEE"|string
| style="background-color: #EEE"|Simple string of text.
| style="background-color: #EEE"|Przykładowy łańcuch tekstu/ciąg znaków.
| style="background-color: #EEE"|&nbsp;
| style="background-color: #EEE"|
|-
|-
! style="background-color: #EEE"|color
! style="background-color: #EEE"|color
| style="background-color: #EEE"|color, with or without alpha.
| style="background-color: #EEE"|Kolor z lub bez kanału alfa.
| style="background-color: #EEE"|#RRGGBB or #RRGGBBAA
| style="background-color: #EEE"|#RRGGBB lub #RRGGBBAA
|}
|}


====Coordinates====
====Koordynaty====
{| cellspacing="1"
{| cellspacing="1"
! style="background-color: #EEE"|Name
! style="background-color: #EEE"|Nazwa
! style="background-color: #EEE"|Description
! style="background-color: #EEE"|Opis
! style="background-color: #EEE"|Value
! style="background-color: #EEE"|Wartość
|-
|-
! style="background-color: #EEE"|camera
! style="background-color: #EEE"|camera
| style="background-color: #EEE"|Position and lookat coordinates for the camera.
| style="background-color: #EEE"|Pozycja kamery i pozycja gdzie ma patrzeć kamera.
| style="background-color: #EEE"|posX,posY,posZ,lookatX,lookatY,lookatZ
| style="background-color: #EEE"|posX,posY,posZ,lookatX,lookatY,lookatZ
|-
|-
! style="background-color: #EEE"|coord3d
! style="background-color: #EEE"|coord3d
| style="background-color: #EEE"|3-component vector, typically used for positions and rotations.
| style="background-color: #EEE"|Trójwymiarowy wektor, zazwyczaj używany do określenia pozycji lub rotacji.
| style="background-color: #EEE"|x,y,z
| style="background-color: #EEE"|x,y,z
|}
|}


====Vehicles====
====Pojazdy====
{| cellspacing="1"
{| cellspacing="1"
! style="background-color: #EEE"|Name
! style="background-color: #EEE"|Nazwa
! style="background-color: #EEE"|Description
! style="background-color: #EEE"|Opis
! style="background-color: #EEE"|Value
! style="background-color: #EEE"|Wartość
|-
|-
! style="background-color: #EEE"|plate
! style="background-color: #EEE"|plate
| style="background-color: #EEE"|Number plate text for a vehicle.
| style="background-color: #EEE"|Treść tablicy rejestracyjnej pojazdu.
| style="background-color: #EEE"|&nbsp;
| style="background-color: #EEE"|&nbsp;
|-
|-
! style="background-color: #EEE"|vehiclecolors
! style="background-color: #EEE"|vehiclecolors
| style="background-color: #EEE"|colors of a vehicle
| style="background-color: #EEE"|Kolory pojazdu.
| style="background-color: #EEE"|colorID1,colorID2,colorID3,colorID4
| style="background-color: #EEE"|colorID1,colorID2,colorID3,colorID4
|-
|-
! style="background-color: #EEE"|vehicleupgrades
! style="background-color: #EEE"|vehicleupgrades
| style="background-color: #EEE"|Upgrades of a vehicle
| style="background-color: #EEE"|Ulepszenia pojazdu.
| style="background-color: #EEE"|upgradeID1,upgradeID2,...
| style="background-color: #EEE"|upgradeID1,upgradeID2,...
|}
|}


====Model ID's====
====ID Modeli====
{| cellspacing="1"
{| cellspacing="1"
! style="background-color: #EEE"|Name
! style="background-color: #EEE"|Nazwa
! style="background-color: #EEE"|Description
! style="background-color: #EEE"|Opis
! style="background-color: #EEE"|Value
! style="background-color: #EEE"|Wartość
|-
|-
! style="background-color: #EEE"|blipID
! style="background-color: #EEE"|blipID
| style="background-color: #EEE"|Picture ID for blips
| style="background-color: #EEE"|ID znacznika (blipa).
| style="background-color: #EEE"|&nbsp;
| style="background-color: #EEE"|&nbsp;
|-
|-
! style="background-color: #EEE"|objectID
! style="background-color: #EEE"|objectID
| style="background-color: #EEE"|Model ID for objects
| style="background-color: #EEE"|ID modelu obiektu.
| style="background-color: #EEE"|&nbsp;
| style="background-color: #EEE"|&nbsp;
|-
|-
! style="background-color: #EEE"|pickupType
! style="background-color: #EEE"|pickupType
| style="background-color: #EEE"|Armor, health or weapon
| style="background-color: #EEE"|Kamizelka, serce lub broń jako ikona.
| style="background-color: #EEE"|"armor", "health" or numeric weapon ID
| style="background-color: #EEE"|"armor", "health" lub ID w postaci liczby
|-
|-
! style="background-color: #EEE"|skinID
! style="background-color: #EEE"|skinID
| style="background-color: #EEE"|Skin ID for peds
| style="background-color: #EEE"|ID postaci.
| style="background-color: #EEE"|&nbsp;
| style="background-color: #EEE"|&nbsp;
|-
|-
! style="background-color: #EEE"|vehicleID
! style="background-color: #EEE"|vehicleID
| style="background-color: #EEE"|Model ID for vehicles
| style="background-color: #EEE"|ID modelu pojazdu.
| style="background-color: #EEE"|&nbsp;
| style="background-color: #EEE"|&nbsp;
|-
|-
! style="background-color: #EEE"|weaponID
! style="background-color: #EEE"|weaponID
| style="background-color: #EEE"|Weapon, e.g. M4
| style="background-color: #EEE"|Broń np. M4
| style="background-color: #EEE"|Numeric weapon ID, e.g. 31
| style="background-color: #EEE"|ID broni w postaci liczby np. 31
|}
|}


====Colshapes and markers====
====Markery(znaczniki) & Colshape'y(kolizje)====
{| cellspacing="1"
{| cellspacing="1"
! style="background-color: #EEE"|Name
! style="background-color: #EEE"|Nazwa
! style="background-color: #EEE"|Description
! style="background-color: #EEE"|Opis
! style="background-color: #EEE"|Value
! style="background-color: #EEE"|Wartość
|-
|-
! style="background-color: #EEE"|colshapeType
! style="background-color: #EEE"|colshapeType
| style="background-color: #EEE"|collision circle, cube, rectangle, sphere or tube
| style="background-color: #EEE"|kolizja typu circle, cube, rectangle, sphere lub tube
| style="background-color: #EEE"|One of: "colcircle", "colcube", "colrectangle", "colsphere", "coltube"
| style="background-color: #EEE"|Jedno z tych: "colcircle", "colcube", "colrectangle", "colsphere", "coltube"
|-
|-
! style="background-color: #EEE"|markerType
! style="background-color: #EEE"|markerType
| style="background-color: #EEE"|Arrow, checkpoint, corona, cylinder or ring marker.
| style="background-color: #EEE"|Marker typu arrow, checkpoint, corona, cylinder lub ring marker.
| style="background-color: #EEE"|One of: "arrow", "checkpoint", "corona", "cylinder", "ring"
| style="background-color: #EEE"|Jedno z tych: "arrow", "checkpoint", "corona", "cylinder", "ring"
|-
|-
|}
|}


====Specials====
====Specjalne====
{| cellspacing="1"
{| cellspacing="1"
! style="background-color: #EEE"|Name
! style="background-color: #EEE"|Nazwa
! style="background-color: #EEE"|Description
! style="background-color: #EEE"|Opis
! style="background-color: #EEE"|Value
! style="background-color: #EEE"|Wartość
|-
|-
! style="background-color: #EEE"|element:type
! style="background-color: #EEE"|element:type
| style="background-color: #EEE"|Element of a certain type, for example: element:flag
| style="background-color: #EEE"|Element określonego typu np. element:flag
| style="background-color: #EEE"|The element's ID
| style="background-color: #EEE"|ID elementu
|-
|-
! style="background-color: #EEE"|selection:val1,val2,...
! style="background-color: #EEE"|selection:val1,val2,...
| style="background-color: #EEE"|Shows a dropdown box from which to pick one value.
| style="background-color: #EEE"|Pokazuje rozwijaną listę, z której można wybrać jedną wartość
| style="background-color: #EEE"|The selected value
| style="background-color: #EEE"|Wybrana wartość
|}
|}
[[pl:Resource:Editor/EDF]]
[[en:Resource:Editor/EDF]]
[[ru:Resource:Editor/EDF]]
[[ru:Resource:Editor/EDF]]

Latest revision as of 17:10, 29 April 2023

EDF oznacza Editor Definition File - Są to pliki XML z rozszerzeniem .edf, które definiują niestandardowe elementy używane przez zasób. Są to elementy, które nie mają znaczenia dla samego MTA. Przykładami są np. <spawnpoint>, <flag>, <checkpoint> itd. Takie niestandardowe elementy są także używane do definiowania ustawień używanych przez tryby gry i umieszcza się je w tagu <settings> w pliku meta.xml danego zasobu.


Wprowadzenie

Niektóre zasoby używają niestandardowych elementów mapy. Przykładowo tryb gry "Capture the flag" używać będzie zapewne elementu <flag>, który będzie zawierał pozycję flagi i przypisaną do niej drużynę. Gdy mapa zostanie załadowana to tryb gry szuka elementów <flag> i odpowiednio je rozmieszcza np. tworząc obiekt flagi w otrzymanej pozycji.

Jest jednak pewien problem z niestandardowymi elementami, który polega na tym, że edytor map nie wiele o nich wie. Nie ma on informacji w jaki sposób element <flag> ma być zaprezentowany wizualnie czy jakie ma właściwości ten element. Jeśli nie dostarczymy edytorowi map tych informacji to nie będzie można użyć tych niestandardowych elementów, a zamiast tego będzie trzeba ręcznie edytować plik .map w jakimś edytorze tekstowym. Na szczęście jednak nie jest to konieczne, ponieważ każdy zasób może zawierać plik .edf z informacjami o niestandardowych elementach w nim użytych.

Używanie plików EDF w edytorze

Jak opisano w Instrukcji edytora map, aby móc tworzyć niestandardowe elementy zasobu na mapie, należy dodać je w oknie Definitions. Kliknij przycisk Definitions w menu głównym edytora, a następnie kliknij dwukrotnie na zasób znajdujący się na liście po lewej stronie. Po tym zamknij okno i przesuwaj kółkiem myszki w panelu elementów aż zobaczysz wybrany zasób. W tym momencie możesz już tworzyć niestandardowe elementy zasobu i manipulować nimi tak samo jak wszystkimi innymi elementami w MTA.

Tworzenie plików EDF

EDF są zwykłymi plikami XML, tyle tylko, że mają rozszerzenie .edf. Zaczniemy od przykładu, w którym stworzymy plik EDF dla trybu gry "Capture the Orb".

<def name="Capture the Orb">
    <element name="orb" friendlyname="Orb spawnpoint" instructions="Umieść swoją kulę w miejscu, gdzie można ją zebrać.">
        <data name="position" type="coord3d" default="0,0,0" />
        <marker size="0.5" type="corona" color="#ffff00ff" />
    </element>
    <element name="objective" friendlyname="Objective point" instructions="Umieść punkt docelowy w miejscu, gdzie można dotrzeć.">
        <data name="position" type="coord3d" default="0,0,0" />
        <marker size="3" type="cylinder" color="#9370dbaa" />
    </element>
    <element name="spawnpoint" friendlyname="Spawnpoint">
        <object editorOnly="true" model="3092" posZ="1" />
        <data name="position" type="coord3d" default="0,0,0" />
        <data name="rotation" type="coord3d" default="0,0,0" />
        <data name="skin" type="skinID" default="0" />
    </element>
</def>

Jak widzisz, składnia jest banalnie prosta. Głównym źródłem jest element <def>, który zawiera wszystkie niestandardowe elementy. Każdy z niestandardowych elementów jest tworzony przez tag <element>, który zawiera nazwę elementu, jego właściwości oraz oraz sposób wizualnej reprezentacji.

Wizualna reprezentacja

Każdy wpis/węzeł wewnątrz tagu <element> to tzw. dziecko/potomek tego elementu i takim słownictwem będziemy się dalej posługiwać.

Każdy potomek elementu, który nie jest węzłem odpowiada za reprezentację wizualną danego elementu. Może być jeden lub więcej obiektów, markerów, pickupów itp. Dla każdego takiego potomka można opcjonalne ustawić jego pozycję (posX, posY, posZ) i rotację (rotX, rotY, rotZ). Pozycja i rotacja elementu będzie zależna od pozycji i rotacji rodzica, czyli reprezentacji niestandardowego elementu (tag <element>). Korzystając z powyższego przykładu; jeśli chciałbyś stworzyć np. spawnpoint w pozycji (30, 14, 3) to edytor wyświetliłby obiekt o modelu 3092 w pozycji (30, 14, 4). Dzieje się tak, ponieważ pozycja (posZ) obiektu z tagu <object> zostanie dodana do pozycji (posZ) samego rodzica z tagu <element>, czyli spawnpointa. Stąd wychodzi 3 + 1 = 4.

Właściwości

Właściwości niestandardowych elementów są opisywane poprzez węzły z tagiem . Niektóre nazwy właściwości mają specjalne znaczenie np. position i rotation. Ich wartość może być zmieniana przez poruszanie lub obracanie elementu w edytorze map. Pozostałe właściwości mogą być zmienione w oknie właściwości.

Reprezentacja wizualna zależna od właściwości

Możliwe jest uzależnienie wizualnej reprezentacji elementu od jednej lub więcej właściwości. Weźmy za przykład taki <checkpoint>, który jest elementem trybu gry race. Element ten zawiera <marker> dla wizualnej reprezentacji, ale oprócz tego posiada kilka atrybutów takich jak kolor czy rozmiar, które będą przypisane do markera. Aby uzależnić wizualną reprezentację od właściwości elementu (w tym przypadku np. od właściwości color zależeć będzie wizualna reprezentacja elementu typu checkpoint, którego ową reprezentacją jest marker), należy zastosować zapis w postaci !nazwawłaściwości w jednym lub więcej atrybutach elementu. Przykład:

<def name="Race">
	<element name="checkpoint" friendlyname="Race checkpoint">
		<data name="position" type="coord3d" required="true" default="0,0,0" />

		<data name="type" type="selection:checkpoint,ring" required="true" default="checkpoint" />
		<data name="size" type="number" required="true" default="2.25"/>
		<data name="color" type="color" required="false" default="#ff0000ff" />
		...
		
		<marker type="!type!" size="!size!" color="!color!" />
	</element>
</def>

Teraz jeśli zmienimy właściwość "type", "size" lub "color" checkpointa to zostanie ona przeniesiona na marker, ponieważ to on jest wizualną reprezentacją tego elementu.

Integracja EDF w zasobie

Gdy już stworzyłeś plik EDF, zapisz go jako plik z rozszerzeniem .edf w folderze ze swoim zasobem. Musisz dodać do pliku meta.xml wpis z atrybutem edf:definition. Tak jak w przykładzie poniżej

<meta>
    <info author="erorr404" type="gamemode" ... edf:definition="cto.edf" />
    ...
</meta>

Odwołania do EDF

Wbudowane elementy MTA

Poniżej znajdziesz listę elementów, które możesz użyć dla wizualnej reprezentacji swoich niestandardowych elementów wraz z ich właściwościami.

<blip>
Właściwość Typ
position coord3d
icon blipID
size integer
color color
dimension integer


<marker>
Właściwość Typ
position coord3d
type markerType
size number
color color
interior integer
dimension integer


<object>
Właściwość Typ
model objectID
position coord3d
rotation coord3d
interior integer
dimension integer


<ped>
Właściwość Typ
position coord3d
model skinID
rotZ number
interior integer
dimension integer


<pickup>
Właściwość Typ
position coord3d
type pickupType
amount number
respawn integer
interior integer
dimension integer


<vehicle>
Właściwość Typ
model vehicleID
position coord3d
rotation coord3d
color vehiclecolors
upgrades vehicleupgrades
plate plate
interior integer
dimension integer


<radararea>
Właściwość Typ
posX number
posY number
sizeX number
sizeY number
color color
dimension integer

Nazwy wbudowanych właściwości

Właściwości o tych nazwach mają specjalne znaczenie dla edytora map. Oznacza to, że mogą one być modyfikowane w inny sposób niż okno właściwości.

Nazwa Typ
position coord3d
rotation coord3d

Typy właściwości

Oto typy, które możesz wybrać dla właściwości węzła niestandardowych elementów.

Prymitywy

Nazwa Opis Wartość
boolean Przykładowa wartość typu boolean. "true" lub "false"
natural Liczby naturalne (całkowite i nieujemne).
integer Liczba całkowita.
number Liczba wymierna.
string Przykładowy łańcuch tekstu/ciąg znaków.
color Kolor z lub bez kanału alfa. #RRGGBB lub #RRGGBBAA

Koordynaty

Nazwa Opis Wartość
camera Pozycja kamery i pozycja gdzie ma patrzeć kamera. posX,posY,posZ,lookatX,lookatY,lookatZ
coord3d Trójwymiarowy wektor, zazwyczaj używany do określenia pozycji lub rotacji. x,y,z

Pojazdy

Nazwa Opis Wartość
plate Treść tablicy rejestracyjnej pojazdu.  
vehiclecolors Kolory pojazdu. colorID1,colorID2,colorID3,colorID4
vehicleupgrades Ulepszenia pojazdu. upgradeID1,upgradeID2,...

ID Modeli

Nazwa Opis Wartość
blipID ID znacznika (blipa).  
objectID ID modelu obiektu.  
pickupType Kamizelka, serce lub broń jako ikona. "armor", "health" lub ID w postaci liczby
skinID ID postaci.  
vehicleID ID modelu pojazdu.  
weaponID Broń np. M4 ID broni w postaci liczby np. 31

Markery(znaczniki) & Colshape'y(kolizje)

Nazwa Opis Wartość
colshapeType kolizja typu circle, cube, rectangle, sphere lub tube Jedno z tych: "colcircle", "colcube", "colrectangle", "colsphere", "coltube"
markerType Marker typu arrow, checkpoint, corona, cylinder lub ring marker. Jedno z tych: "arrow", "checkpoint", "corona", "cylinder", "ring"

Specjalne

Nazwa Opis Wartość
element:type Element określonego typu np. element:flag ID elementu
selection:val1,val2,... Pokazuje rozwijaną listę, z której można wybrać jedną wartość Wybrana wartość