/Spec/Specs/Vehicles.xml - plik odpowiedzialny za część
informacji o pojazdach i wyświetlanie menu pojazdów, ustala
m.in.:
* podział pojazdów na 4 grupy (FD, THW, PD, EMS)
* kolejność pojazdów w grupach (poprzez kolejność wpisów; 9
pierwszych wyświetlanych od razu, resztę trzeba przewijać)
* cenę pojazdu (price="")
* ilość miejsc dla personelu (space="")
* ilość miejsc dla cywili / rannych (loadspace=""; uwaga aby móc
ładować do nowych typów pojazdów cywili należy zmodyfikować
skrypty odpowiedzialne za to, są one przypisane do osób
wykonujących tą czynność a nie do pojazdu)
* prędkość na mapie dojazdowej (speed="")
* personel który może być przywieziony pojazdem (wsiadanie na
miejscu akcji - skrypty personelu)
* misje w których pojazd występuje (requires="")
* informacje o wyposażeniu pojazdu
* inne informacje o pojazdach
Uwaga w przypadku pojazdów umieszczonych na mapie należy
określić ilość miejsc w pojeździe poprzez polecenia w skrypcie:
VehicleList lista("rtw00");
Vehicle Pojazd = *lista.GetVehicle(0);
Pojazd.SetMaxPassengers(4); // personel
Pojazd.SetMaxTransports(1); // cywile / ranni
Natomiast parametry takie jak wyposażenie, przypisane skrypty (i
inne ustawiane w *.e3p) ustawia się w edytorze (domyślnie
dziedziczenie z *.e3p).
UWAGA: zmiany dokonywane w *.e3p po utworzeniu obiektów na mapie
nie dotyczą tych obiektów !!!
/Prototypes/*/*/*.e3p - inne informacje o pojazdach / personelu
m.in.:
* realnie posiadane wyposażenie (binarny argument Flags=""
znacznika <Prototype> w pliku *.e3p pojazdu)
* przypisania skryptów do pojazdów / personelu (znaczniki
<command name="_skrypt_" /> w bloku <commands>)
* unikalny (ale może zostać zdublowany) identyfikator typu
pojazdu (argument TaskType="" znacznika <Prototype>; numer ten
jest zwracany przez funkcje GetVehicleType(); można używać
nowych identyfikatorów > 28);
* identyfikator typu osoby (argument SquadType="" znacznika
<Prototype>; identyfikuje on typ osoby - FD, PD, EMS, THW - a
nie samą osobę, jak ma to miejsce przy pojazdach)
* pliki najwygodniej modyfikować (poza pewnymi wyjątkami -
TaskType) jest edytorem: Edit -> Scene (prototypes) -> Vehicles
-> ...
Uwaga aby pojazdy o identyfikatorach > 28 zachowywały się po
dotarciu na miejsce akcji normalnie, skrypt misji powinien
zawierać coś takiego:
void OnSquadVehicleArrived(Vehicle *Vehicle_) {
if (Vehicle_->GetVehicleType() > 28)
Vehicle_->SetCommandable(true);
}
Analogiczną komendę należy dodawać dla pojazdów umieszczanych od
razu na mapie.
Rozwiązanie takie ma jednak wady: pojazd nie jest zaznaczany na
minimapie oraz w skrypcie każdej misji gdzie ma być użyty należy
umieścić stosowną komendę, dlatego rozważyć należy dublowanie
TaskType="". W przypadku konieczności rozróżnienia pojazdów o
jednakowym GetVehicleType() zastosować można:
if( StrCompare(Caller->GetPrototypeFileName(),
"mod:sciezka_odpowiedniego_pliku_e3p") == 0 )