Cattle and Crops: Mission Documentation
condition
- Conditions sind die einzelnen Schritte der Mission, die aufeinander folgen. Sie werden nacheinander aufgelistet.
- Sie werden, je nach
drawMode
-Einstellung im<mission>
-Element, imMissionInfoWindow
(oben links) aufgelistet. - Sie haben generell mindestens einen Beschreibungstext (
description
), können aber zusätzlich erweiterte Infos (längere Texte, Bilder) in einem eigenen Fenster (<condition>/<window>
) anzeigen. - Jede Condition hat ein
type
-Attribut (mit potentiell noch weiteren Einstellungen), das die Bedingung für das Erfüllung definiert. - Jede Condition kann als Callback bei Erfüllung ein oder mehrere
command
s ausführen lassen. Diese sind als commands-Block in der Condition definiert.
Generelle Attribute
Schritt-Text: description, stringId, expandedDescription, expandedStringId
stringId
ist die stringId (Pfad in der Übersetzungstabelle) der Schritt-Beschreibung.description
ist der Fallback der Schritt-Beschreibung. Er wird benutzt falls der instringId
definierte Eintrag nicht gefunden wird.expandedStringId
(optional) ist die stringId einer ausgeklappten Schritt-Beschreibung. Sie wird angezeigt wenn der Spieler den Schritt-Text ausklappt (klickt).expandedDescription
ist der Fallback der ausgeklappten Schritt-Beschreibung. Er wird benutzt falls der inexpandedStringId
definierte Eintrag nicht gefunden wird.
Attribute | Type | Value | Beschreibung |
---|---|---|---|
stringId |
string |
* |
StringId des Textes |
description |
string |
* |
Fallback-Text |
(expandedStringId ) |
string |
* |
Optional: StringId des ausgeklappten Textes |
(expandedDescription ) |
string |
* |
Optional: Fallback des ausgeklappten Textes |
Anzeige des Schritt-Fensters: action, makeHidden, makeWindowTopMost
action
kann optional für jede Condition eine die Taste einer belegten Action anzeigen, egal ob sie inhaltlich zu der Condition passt.makeHidden
kann das Schritt-Fenster optional für die Dauer der Condition ausblenden. Nur empfehlenswert wenn es die Condition einwindow
hat, das die Aufgabe/einen Text anzeigt.makeWindowTopMost
legt optional fest ob das Fenster für die Dauer der Condition im Vordergrund gerendert werden soll. Ist v.a. nützlich wenn währenddessen ein Menü angezeigt wird dass das Fenster ansonsten überdecken könnte.
Attribute | Type | Value | Beschreibung |
---|---|---|---|
(action ) |
string |
**** (4 chars) |
Die ID der anzuzeigenden Action |
(makeHidden ) |
boolean |
false | true |
false : Fenster wird angezeigt, true : Fenster wird nicht angezeigt. Default: false |
(makeWindowTopMost ) |
boolean |
false | true |
false : Fenster wird nicht im Vordergrund gerendert, true : Fenster wird im Vordergrund gerendertDefault: false , außer beim type widget |
Marker: mpInstance, mpPosition, mpRotation, mpBoxOffset
Es kann eine Welt-Instanz definiert werden, die an einem angegebenen Ort platziert wird. Zum Beispiel ein Marker, ein Fahrzeug-Ghost o.ä.
Bestimmte Types haben einen Default-Marker an der Zielposition des Schrittes:
Die genannten Types überschreiben die mpPosition
mit ihrem eigenen Zielwert (z.B. posX
,posY
,posZ
bei driveVehicle
).
Attribute | Type | Value | Beschreibung |
---|---|---|---|
mpInstance |
string |
[path] |
Pfad zur .wld Welt-Instanz |
mpPosition |
float;float (;float ) |
*;*;* | *;* |
x-, y- und z-Komponente der Koordinate an der die Instanz gerendert wird. Z ist optional |
mpRotation |
float |
[-360.0 , 360.0 ] |
Rotation der Instanz um z in Grad |
(mpBox ) |
float;float;float |
>0;>0;>0 |
Größe (x, y, z) die die Boxen in der Instanz erhalten |
(mpBoxOffset ) |
float;float;float |
*;*;* |
Positions-Offset (x, y, z). Der Offset wird auf die bereits existierenden lokalen Box-Position addiert. Der Offset muss von der Position pro Komponente subtrahiert werden, wenn die original Größe der Box kleiner ist als die neue Größe. |
Progress Anzeige: progressVisible, progressFactor, progressOffset
Einige Conditions können optional eine Progressbar anzeigen, um zu visualisieren wie weit die condition Fortgeschritten ist. Die Progress-Anzeige kann zudem optional im Verhältnis zu einem anderen Wert als dem Zielwert der aktuellen Condition angezeigt werden.
Attribute | Type | Value | Beschreibung |
---|---|---|---|
(progressVisible ) |
boolean |
true | false |
Legt fest, ob der Fortschritt angezeigt werden soll. |
(progressFactor ) |
float |
* |
Faktor-Angabe, die den aktuellen Wert ins Verhältnis zum absoluten Endwert setzt, wenn progressVisible true ist |
(progressOffset ) |
float |
* |
Delta-Wert der genutzt werden kann, um einen Offset einer Vorausgegangenen Condition abzubilden, wenn progressVisible true ist. Mach nur in Kombination mit progressFactor Sinn |
Beispiele
Eine einzelne Condition mit Fortschschrittsbalken.
…
<conditions>
<condition type="acre" fraction="100" ... progressVisible="1" />
</conditions>
…
Mehrere aufeinanderfolgende conditions als ein durchgängiger Fortschritt. Dazu wird in jedem Schritt der Anteil des Schritts zum Endziel (als Verhältnis progressFactor
) angegeben. Zudem werden in den Zwischenschritten der bisher erreichte Progress angegeben (als Absolutwert progressOffset
):
…
<conditions>
<!-- Erste condition die 25% vom Ziel (80) ausmacht -->
<condition type="acre" fraction="20" ... progressVisible="1" progressFactor="0.25" />
<!-- Zweite condition die bei 25% anfängt, bis 50% geht und damit wiedr 25% vom Ziel (80) ausmacht -->
<condition type="acre" fraction="40" ... progressVisible="1" progressFactor="0.25" progressOffset="0.25" />
<!-- Dritte condition die bei 50% anfängt, bis 100% (80) geht und damit 50% vom Ziel ausmacht -->
<condition type="acre" fraction="80" ... progressVisible="1" progressFactor="0.5" progressOffset="0.5" />
</conditions>
…
Sound: completeSound, noCompleteSound
completeSound
legt optional den Pfad zu einer Sounddatei fest, die beim Abschluss der Condition anstelle des Standardsounds abgespielt wird.noCompleteSound
legt optional fest ob bei erfolgreichem Abschluss einer Condition ein Sound abgespielt werden soll oder nicht.
Attribute | Type | Value | Beschreibung |
---|---|---|---|
(completeSound ) |
string |
* |
Pfad zur Sound-Datei |
(noCompleteSound ) |
boolean |
true | false |
Bei true wird KEIN Sound abgespielt.Default: false |
Beispiele
…
<conditions>
<!-- Reguläre condition mit Text -->
<condition type="..." stringId="MISS-STP1" description="Step 1 Fallback Text" ... />
<!-- Condition mit Text und Command-Callback -->
<condition type="..." stringId="MISS-STP2" description="Step 2 Fallback Text" ... >
<commands>
<command type="setMoney" money="12345">
</commands>
</condition>
<!-- Condition mit Rendern an oberster Position -->
<condition type="..." makeWindowTopMost="1" stringId="MISS-STP3" description="Step 3 Fallback Text" ... />
<!-- Condition mit custom Sound -->
<condition type="..." description="Step Fallback Text" completeSound="path/to/my/sound/file" ... />
<!-- Condition mit deaktiviertem Sound -->
<condition type="..." noCompleteSound="true" ... />
<!-- Condition mit custom Action -->
<condition type="..." action="lite" ... />
<!-- Condition mit custom Marker -->
<condition type="..." mpInstance="path/to/my/marker" mpPosition="24.3;-701.0;3" mpRotation="123.4" mpBox="4;5;3" mpBoxOffset="0.73;-0.3;4.2" … />
</conditions>
…