Interactive Control - Monitors

Skripty na míru. Na drobnosti se hodí ale na složitější funkce je to ztráta času dělat jednu věc třeba na 4 stroje různě. To samé je případ monitorů v FS15. Neexistoval skript, který je rozděloval na skupiny a tak se tvořili skripty na míru. Nyní je tato možnost zabudovaná v IC takže je tato funkce dostupnější a jednoduší na vytvoření.

Kam a jak zapisovat monitory

Jelikož toto je naprosto odlišná věc oproti ostatním možnostem IC, tak se taky bude zapisovat jinak. Displaye se zapisují do oddílu monitors a jednotlivý display pak do tagu monitor. Každý display se pak dělí na vrstvy, přičemž máme jednu základní vrstvu která může a nemusí sloužit jako pozadí. No více zatím nebudu vysvětlovat a ukážeme si schéma zápisu:

1<monitors>
2 <monitor ...>
3 <layer ... /> <!-- vrstva jako pozadi (bez open a close) -->
4 <layer ... >
5 <open ... />
6 <close ... />
7 </layer>
8 ...
9 </monitor>
10 ...
11</monitors>
12

No doufám že jste to pochopili.

Atributy pro tag monitor

Atribut name

Zde je narozdíl od jiných položek atribut name použitelný pouze v případě, že je atribut useStart nastaven na false. Protože pokud se display zapne automaticky při startu motoru, pak nepotřebujeme žádnou hlášku. Pokud ji ovšem používáme opět slouží name k zobecnění hlášek.

Atribut size

Size slouží k definování velikosti tlačítka pro klikní - nikoli velikosti vizuální! Hodnota je desetinné číslo v rozmezí 0 až 1. Toto číslo určije procentuální velikost klikatelného tlačítka oproti monitoru. Je dobré si s tímto pohrát aby se mohli používat tlačítka blízko u sebe. (Opět použití pouze pokud je useStart nastaven na false)

Atribut mark

Tento atribut obsahuje index tlačítka v i3d stroje. Objekt na tomto indexu musí mít nejaký vnořrný objekt pro případné přidání efektů. Doporučuji použít tlačítko z archivu který si stáhnete s IC. Kolem tohoto indexu se tvoří klikatelná oblast definovaná v size. (Použití poue pokud je useStart nastaven na false). Pokud je také useStart nastaven na false nemusíme zadávat mark, a takto vytvořenou událost můžete používat v multiButtons.

Atribut synch

Atribut synch se používá pro multiplayer a může obsahovat hodnotu true a nebo false. Tento atribut není povinný a jeho základní hodnota je true. Pokud je hodnota false, pak není synchronizováno chování na MP - tzn.: jeden hráč může vidět něco spuštěné a druhý ne. Vhodné pro nějaké drobné funkce aby se nezatěžovala komunikace při MP.

Atribut isOutside

Tento atribut definuje, zda je monitor určen pro použití mimo stroj a nebo pro použití v kabině. Pokud je false, monitor bude ovladatelný pouze tehdy, když jsme ve stroji. Pokud je true tak to zanamená, že aby se talčítko dalo spustit, tak musíme být v dosahu definovaném minDist. Tento atribut je nepovinný a jeho základní hodnota je false. (Použití poue pokud je useStart nastaven na false)

Atribut useStart

Určuje, zda se má monitor zobrazit aoutomaticky po startu motoru, a nebo zda má být možnost zapnout/vypnout monitor přes tlačítko. Jeho hodnota nabývá buď true nebo false. Pokud je true, pak se monitor aktivuje automaticky po nastartování.

Atribut defaultLayer

Určuje základní vrstvu monitoru, která se spustí po startu monitoru. Může znázorňovat pozadí přes které se dále mohou promítat snímky z monitoru. Atribut musí být nastaven, avšak jde obejít při použití atributu moveDefaultLayer. Obsahuje celé číslo, které představuje index načtené vrstvy. Index závisí podle toho, jak jsou vrstvy zapsány v xml - vrstva nahoře má index 0 a ta spodní má index o jedno menší než je počet vrstev (indexuje se od 0).

Atribut moveDefaultLayer

Určuje, zda se má základní vrstva střídat s ostatními vrstvami a nebo zůstat jako pozadí. Nabývá hodnot true nebo false.

Atribut layerVisPos

Obsahuje pozici, kterou zaujme vrstva pokud je zobrazena. Jeho hodnota je tedy vektor(3) (- prostÄ› "x y z").

Atribut layerClosePos

Obsahuje pozici, kterou zaujme vrstva pokud je skryta - aby se i tak nedalo kliknout na tlačítka. Jeho hodnota je tedy vektor(3) (- prostě "x y z").

Atributy onMessage a offMessage

Tyto atributy se používají k definování hlášky, která se má zobrazit po najetí myši a to buď při spuštěném moitoru nebo vypnutém monitoru. Používají se pouze pokud je useStart nastaven na false. Oba tyto atributy musí obsahovat název definovaného textu v l10n v modDesc.xml.

Atributy pro tag monitor.layer

Jak jsem již zmínil, tak monitor obsahuje nějaké vrstvy. Tyto vrstvy se zapisují pod monitor (viz příklad 1, řádek 3) a obsahují samostatné atributy, převážně pro hlášky při spouštění vrstvy. Tak jdeme na popisování.

Atribut name

Tento atribut slouží k zobecnění hlášek - pokud máme například 2 vrstvy, tak pro obě můžeme vypisovat stejnou hlášku s tím, že místo name které se tam má doplnit, napíšeme do hlášky on/offMessage nějaký text a jako zástupný znak name použijeme %s. Ve výsledku tak máme třeba jednu onMessage, jednu offMessage a 2 animace používající stejné hlášky akorát s jiným name. Atribut name obsahuje název definovaného textu v l10n v modDesc.xml.

Atributy onMessage a offMessage

Tyto atributy se používají k definování hlášky, která se má zobrazit po najetí myši a to buď při zobrazené vrstvě a nebo při vrstvě skryté. Pro tlačítko open platí offMessage a pro tlačítko close platí onMessage. Oba tyto atributy musí obsahovat název definovaného textu v l10n v modDesc.xml. Pokud se vrstva neotevírá tlačítkem (pozadí), pak tyto atributy můžem vynechat.

Atribut index

Asi nejdůležitější atribut vrstvy - určuje index který je transformován a zviditelňován jako velý vrstva - může odkazovat na transform group ve které jsou poté další ovládací možnosti a prvky.

Atributy pro tlačítka open a close

Jako poslední nám zbývají tlačítka open a close, které slouží pro otevírání a zavírání vrstev monitoru. Jejich nastavení je jednoduché a snadno pochopitelné.

Atribut size

Definuje velikost klikatelné oblasti na obrazovce. Hodnota je desetinné číslo v rozmezí 0 až 1. Toto číslo určije procentuální velikost klikatelného tlačítka oproti monitoru (velikosti okna hry).

Atribut mark

Tento atribut obsahuje index tlačítka v i3d stroje. Objekt na tomto indexu musí mít nejaký vnořrný objekt pro případné přidání efektů. Doporučuji použít tlačítko z archivu který si stáhnete s IC. Kolem tohoto indexu se tvoří klikatelná oblast definovaná v size.

Příklad na závěr

A jako vždy následuje ji tradiční příklad na závěr!

1<monitors>
2 <monitor name="monitor1" useStart="true" layerClosePos="0 0 5" layerVisPos="0 0 0" defaultLayer="0" moveDefaultLayer="false">
3 <layer name="m1l1" index="0>6|0|15|0|5|0|0|0" />
4 <layer name="m1l2" index="0>6|0|15|0|5|0|0|1" onMessage="cp_panel_on" offMessage="cp_panel_off" >
5 <open size="0.015" mark="0>6|0|15|0|5|0|0|0|3" move="false" />
6 <close size="0.015" mark="0>6|0|15|0|5|0|0|1|9" move="false" />
7 </layer>
8 <layer name="m1l3" index="0>6|0|15|0|5|0|0|2" onMessage="cp_panel_on" offMessage="cp_panel_off" >
9 <open size="0.015" mark="0>6|0|15|0|5|0|0|0|1" move="false" />
10 <close size="0.015" mark="0>6|0|15|0|5|0|0|2|1" move="false" />
11 </layer>
12 <layer name="m1l4" index="0>6|0|15|0|5|0|0|3" onMessage="cp_panel_on" offMessage="cp_panel_off" >
13 <open size="0.015" mark="0>6|0|15|0|5|0|0|0|2" move="false" />
14 <close size="0.015" mark="0>6|0|15|0|5|0|0|3|4" move="false" />
15 </layer>
16 </monitor>
17
18 <monitor name="monitor2" useStart="true" layerClosePos="0 0 5" layerVisPos="0 0 0" defaultLayer="0" moveDefaultLayer="false">
19 <layer name="m2l1" index="0>6|0|15|0|5|0|1|0" />
20 <layer name="m2l2" index="0>6|0|15|0|5|0|1|1" onMessage="cp_panel_on" offMessage="cp_panel_off" >
21 <open size="0.015" mark="0>6|0|15|0|5|0|1|0|2" move="false" />
22 <close size="0.015" mark="0>6|0|15|0|5|0|1|1|9" move="false" />
23 </layer>
24 <layer name="m2l3" index="0>6|0|15|0|5|0|1|2" onMessage="cp_panel_on" offMessage="cp_panel_off" >
25 <open size="0.015" mark="0>6|0|15|0|5|0|1|0|1" move="false" />
26 <close size="0.015" mark="0>6|0|15|0|5|0|1|2|4" move="false" />
27 </layer>
28 </monitor>
29</monitors>

Související video

Skript ke stažení

  1. InteractiveControl (Farm-Share)